toggle() – nefunkční netteForms.js

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

Ahoj,

chci docílit prakticky toho stejného co v článku https://doc.nette.org/…s/validation
tzn. při zašrtnutí checkboxu zobrazit nějaké další formuářové prvky.

Zjednodušeně mám něco takového

$form->addCheckbox('change_psswd', 'Změnit heslo')
	->addCondition($form::EQUAL, true)
		->toggle('input-psswd')
		->toggle('input-psswd-repeat');

$form->addPassword('password', 'Heslo:')
	->setOption('id', 'input-psswd');

$form->addPassword('password_verify', 'Heslo znova:')
	->addRule(Form::EQUAL, 'Hesla se neshodují', $form['password'])
	->setOption('id', 'input-psswd-repeat')
	->setOmitted();

Pochopil jsem, že pro funkčnost je potřeba script netteForms.js, takže jsem ho stáhnul a přilinkoval.
Přilinkovaný je dobře

<script src="{$basePath}/js/external/nette.ajax.js"></script>
<script src="{$basePath}/js/external/netteForms.js"></script>
<script src="{$basePath}/js/grido/grido.js"></script>
<script src="{$basePath}/js/grido/grido.nette.ajax.js"></script>

Zkoušel jsem master verzi a verzi 2.3.6, ale výsledek stejný.
Konzole nevypisuje žádnou chybu, ale prvky se normálně zobrazí a při kliku na checkbox se nic neděje, ani v konzoli nic není.

Nesetkal se někdo s tím? děkuji.

Aurielle
Člen | 1281
+
0
-

Nevím, zda je ->setOption('id', ...) zrovna to, co hledáš, spíš asi chceš ->setHtmlId(...).

Edit: u skrytých prvků si samozřejmě musíš sám správně pořešit validační pravidla.

Editoval Aurielle (22. 12. 2015 1:51)

David Matějka
Moderator | 6445
+
0
-

@Aurielle to setOption je ok, nastavi to id pro cely obalovaci kontejner https://api.nette.org/…rer.php.html#358