Změna IDček polí formuláře po aktualizaci Nette

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

Ahoj,

aktualizoval jsem po hodně dlouhé době (3 roky?) na nové Nette (2.2) a IDčka formulářových prvků se mi změnila z frm[nazevFormulare]-[nazevElementu] na frm-[nazevElementu].

Jde to nějak vrátit? Mám na to navázáno dost javascriptu. Zkoušel jsem si hrát s BaseControl::$idMask, ale bez úspěchu.

Doplnění: Používám z Nette jen formuláře a DI container.

Díky za nakopnutí.

Editoval kutny (11. 10. 2014 12:42)

MartinitCZ
Člen | 580
+
0
-

Nejde. Nicméně vázat js na automaticky generované id je opravdu blbost. Měl sis přidat vlastní class.

enumag
Člen | 2118
+
0
-

Pokud vím tak by ID mělo obsahovat i název komponenty formuláře (alespoň podle API). Není to spíše naopak že dříve tam ten název formuláře nebyl?

kutny
Člen | 6
+
0
-

Nene, teď je $idMask = ‚frm-%s‘; kde %s je název konkrétního elementu. Dřív to fungovalo, jak píšu.

kutny
Člen | 6
+
0
-

Ty v javascriptu nepracuješ s ID formulářových prvků ale s classami? To mi připadá dost nepraktické tedy. Každopádně mi to připadá jako celkem zásadní změna chování frameworku, která by měla být zpětně kompatibilní alespoň nějak.

enumag
Člen | 2118
+
0
-

To je divný když ve zdrojáku není getName ale lookupPath https://api.nette.org/…rol.php.html#315

enumag
Člen | 2118
+
0
-

Ledaže zjišťuješ ID elementu dříve než je formulář připojen k presenteru.

kutny
Člen | 6
+
0
-

Doplním, že nepoužívám Nette celé, jen formuláře.

Myslíš, že řešením je tedy dostat to do toho lookupPath(). Poradíš, jak na to?

enumag
Člen | 2118
+
0
-

To je hodně podstatná informace. :-D Jak to dostat do lookupPath nevím ale popravdě řečeno bych aktuální chování označil za bug. Založ kdyžtak issue na GH https://github.com/nette/forms

MartyIX
Člen | 217
+
0
-

Pokud nechceš, aby se ID změnilo s novou verzí Nette, tak je imho nejlepší to ID nastavit formulářovému prvku explicitně. Povětšinou je to lepší řešení než přidávat vlastní class.

Editoval MartyIX (11. 10. 2014 13:44)

MartinitCZ
Člen | 580
+
0
-

Možná nepraktické, ale nikdy jsem s upgradem neměl problém.
Spoléhat se na generovaný název a né svůj vlastní je zásadní chyba návrhu.