Dva stejné formuláře na stránce – nefunkční toggle

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

Ahoj,

na stránce mám dva stejné formuláře, které mám jako komponenty. Jednou je komponenta vytvořená přímo v presenteru, podruhé je součástí jiné komponenty. Ve formuláři používám toggle metody pro dynamické skrývání prvků na základě zvolených hodnot. První výskyt formuláře je viditelný vždy, druhý až po nějaké interakci a načtení ajaxu. Dokud nenačtu druhý formulář, toggle metody fungují bez problému. Po načtení druhého formuláře toggle metody přestanou fungovat (počítám, že to je tím, že se nyní na stránce nachází více elementů se stejným id).

Proto bych se chtěl zeptat, jak toto elegantně vyřešit jinak, než psát konkrétní javascript pro tuto jedinou stránku, kde se ty formuláře mohou objevit 2x?

Předem díky za rady a nápady.

h4kuna
Backer | 740
+
0
-

Pokud máš formulář jako komponent a jednou v presenteru a podruhé přes jinou komponentu tak by se mělo id vygenerovat pokaždé jiné. Ukaž kód.

akadlec
Člen | 1326
+
0
-

Ne, tohle u togle neplatí, tam zadáváš přímo IDčko se kterým má pracovat, nic se negeneruje.

akadlec
Člen | 1326
+
0
-

Viděl bych to asi na úpravu formuláře kde si k tomu IDstringu přidáš nějaký identifikátor aby jsi ty dva formy rozlišil a ten identifikátor tam dávat třeba přes setter a nebo přímo v renderování toho formu.

Lukeluha
Člen | 130
+
0
-

Díky za nakopnutí, nakonec jsem všem idčkám, které toggluju, přidal prefix $control->parent->name

Lukeluha
Člen | 130
+
0
-

i když jsem teď našel v API dokumentaci další metodu, možná ještě úplně jistější by bylo ji použít – $control->getUniqueId()