Nastaviť „prompt“ hodnotu selectbox-u ako „selected“ prizobrazení formuláru

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Danndy
Člen | 35
+
0
-

Ahoj.

Mám takýto dotaz. Keď vytvorím v nejakom formulári select box, napr. :

	$this->addSelect('category', 'Kategória', $categoryFacade->getCategoryPairs())
			->setPrompt('všetky');

tak sa pri vykresení formuláru defaultne nastaví v mojom select-boxe hodnona prompt čize „všetky“ ale to bez toho aby tento <option> html tag bol označený ako selected="".

<select name="category" id="frm-archiveSearchForm-category">
	<option value="">všetky</option>
	<option value="2">Kategoria 1</option>
	<option value="4">Kategoria 2</option>
	<option value="5">Kategoria 3</option>
	<option value="3">Kategoria 4</option>
</select>

Moja otázká znie, je možne nejakým sposobom nastaviť pre takýto selectbox, aby jeho prompt hodnota bola hned pri zobrazení formuláru selected tzn. nastaviť default hodnotu pre selectbox ""/NULL ? Potrebujem to koli bootstrap-select jQuery pluginu aby mi pri zobrazení formularu, zobrazoval že je vybraná default hodnota prompt.

CZechBoY
Člen | 3608
+
0
-

Možností je několik, teď mě napadá třeba

  1. přepsat renderer (podědit DefaultFormRenderer, při vykreslování SelectBoxu vykreslit prompt se selected)
  2. přepsat addSelect (v nějakým BaseForm přepsat metodu addSelect a pak nastavit defaultní hodnotu)
  3. manuální render formuláře
  4. upravit si to v js přes jquery
Danndy
Člen | 35
+
0
-

@CZechBoY dík za odpoveď. Chcem sa len opýtať, je vobec možne selectboxu nastaviť default nasledovne alebo neajk podobne ako:

$this->addSelect('category', 'Kategória', $categoryFacade->getCategoryPairs())
			->setPrompt('všetky')->setDefaultValue(null);

??

Editoval Danndy (21. 9. 2016 18:51)

CZechBoY
Člen | 3608
+
0
-

?
Tak jak jsem napsal.