select na text

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

Zdravím,

hledal jsem ale nenalezl: Jde udělat select s tím, že když vyberu poslední variantu např. jiné – změní se select na text – aby uživatel mohl napsat do chce?

dalo by se to řešit i přes toggle – že odkryji textové pole, nicméně na select už jeden toggle mám a dávat dva asi nejdou, tedy alespoň mě se to nepovedlo:

$form->addSelect('typ_vestavby','Typ vestavby: ', array('typ1','typ2','typ3'))->addRule(Form::FILLED,'Zadejte typ vestavby')
->addCondition(Form::EQUAL, 1)->toggle('sendBox')
->addCondition(Form::EQUAL, 2)->toggle('sendBox2');


$form->addGroup()->setOption('container', Html::el('div')->id('sendBox'));
$form->addText('pocet_ovladacu', 'Počet ovladačů:', 35);

$form->addGroup()->setOption('container', Html::el('div')->id('sendBox2'));
$form->addText('pocet_ovladacu2', 'Počet ovladačů2:', 35);

Editoval filas (14. 4. 2009 14:55)

Ola
Člen | 385
+
0
-

A tohle nejede?

$form->addSelect('typ_vestavby','Typ vestavby: ', array('typ1','typ2','typ3'))
     ->addRule(Form::FILLED,'Zadejte typ vestavby')
     ->addCondition(Form::EQUAL, 1)->toggle('sendBox');
$form['typ_vestavby']->addCondition(Form::EQUAL, 2)->toggle('sendBox2');

.........

Editoval Ola (14. 4. 2009 16:24)

filas
Člen | 2
+
0
-

Tak to zabralo… dík.

Nicméně změnu select na text jste nikdo zatím neřešil?

_Martin_
Generous Backer | 679
+
0
-

Na text to změníš jednoduše

$form->addGroup()->setOption('container', Html::el('div')->id('selectContainer'));;
$form->addSelect('typ_vestavby','Typ vestavby: ', array('typ1','typ2','typ3'))
	->addRule(Form::FILLED,'Zadejte typ vestavby')
	->addCondition(Form::EQUAL, 1)->toggle('textDriversContainer');
$form['typ_vestavby']->addCondition(~Form::EQUAL, 2)->toggle('selectContainer');
$form['typ_vestavby']->addCondition(Form::EQUAL, 2)->toggle('textOtherContainer');

$form->addGroup()->setOption('container', Html::el('div')->id('textDriversContainer'));
$form->addText('pocet_ovladacu', 'Počet ovladačů:', 35);

$form->addGroup()->setOption('container', Html::el('div')->id('textOtherContainer'));
$form->addText('pocet_ovladacu2', 'Jiný:', 35);

Ale probém je, že potom už text nemáš jak změnit na select. Takže bych se takovému řešení raději vyhnul.

Editoval _Martin_ (15. 4. 2009 10:18)