Generovaná ID u formulářových prvků

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

Ahoj, můžete mi prosím někdo osvětlit zda je následující chování feature nebo chyba? Vytvářím-li formulář uvnitř komponenty, jsou prvkům formuláře vygenerována ID, která nereflektují název komponenty. Umístím-li tedy komponentu vícekrát na jednu stránku (např. pomocí Multiplieru), výsledná webová stránka obsahuje elementy se stejným ID. Díky tomu mi nefunguje například datepicker, ale samozřejmě i cokoliv jiného co pracuje s ID elementů. Zajímavé je, že ID elementu form se vygeneruje správně (tzn. včetně identifikace instance komponenty). Používám 2.0.6. Na fóru je sice vlákno ID prvků při vícenásobném použití stejného formu na stránce ale moc moudrý z toho nejsem, děkuju!

Editoval elendir (3. 10. 2012 11:51)

elendir
Člen | 31
+
0
-

Možná to někomu pomůže – obešel jsem to ručním nastavením ID u dotčených elementů. Formulář je vytvářen uvnitř komponenty vyrobené Multiplierem:

$form->addDatePicker('arrival')->setHtmlId("{$this->getParent()->getName()}-{$this->getName()}-arrival");
Jan Tvrdík
Nette guru | 2595
+
0
-

@elendir: Ve 2.1-dev už je tohle nějakou dobu opravené, do 2.0.x se to ale z důvodu zpětné kompatibility nedostane.

elendir
Člen | 31
+
0
-

Aha tak to jsem netušil, měl jsem lépe hledat, děkuju za info.