Toggle formulářové prvky v ajaxovém modal okně

adioverride
Člen | 26
+
0
-

Ahoj,
prosím vás řeším takovou asi banalitku. Otevírám v aplikaci modal okno ve kterém je formulář, celé to načítám ajaxově. Na formulářové prvky bych chtěl použít toggle funkce.

$form->addSelect('type', 'Type', $types)
 ->setPrompt('- Nothing -')
 ->addRule(Form::FILLED, 'Select type')
 ->addCondition($form::EQUAL, 'daily')
	->toggle('daily');

Nicméně toggle funkce na formuláři nefungují (teda pokud je v modal okně). Myslím, že bych měl reinicializovat netteForms.js po načtení modal okna. Jakým způsobem toho mohu docílit?

Díky,
A.

Polki
Člen | 553
+
0
-

Ano, po nacteni prvku ajaxem se neuplatni znovu js, ktery uz na strance je.
Mas dve moznosti.

  • Bud nenacitat prvky AJAXem, jelikoz pak nebudes muset refreshovat js, ale pocitam, ze to AJAXem delat musis napriklad z duvodu ruzneho poctu formularovych prvku v modal okne.
  • Nebooo obalit nacitani onech js knihoven snippetem a invalidovat tento snippet taky.

Nic jine me nenapada.

Snad pomohlo.

duke
Člen | 650
+
+3
-

Knihovna nette.ajax.js to řeší prostřednictvím rozšíření forms, které je definováno přímo v nette.ajax.js. Konkrétně zaregistruje after handler rozšíření snippets, který vyhledá všechny elementy <form> v nově vloženém snippetu a zavolá na nich window.Nette.initForm (který je definován v netteForms.js).

Editoval duke (6. 12. 2018 12:03)