Nette 2.0.2 a ID formuláře

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

Zdravím. Zkouším nově vypuštěné Nette 2.0.2 a zjistil jsem, že se mi automaticky negenerují IDéčka u formulářů. Zkoušel jsem to na formulářích vytvořených přes komponentu a do ID se generuje pouze „frm-“. To je tak schválně nebo se tam někde sekne ten zbytek a neprotlačí se tam jméno komponenty k tomu frm- ?

PS: zkoušel jsem pro jistotu i sandbox z aktuálního balíku

Editoval ViPEr*CZ* (31. 3. 2012 9:23)

Tomáš Votruba
Moderator | 1114
+
0
-

ViPErCZ napsal(a):

Zdravím. Zkouším nově vypuštěné Nette 2.0.2 a zjistil jsem, že se mi automaticky negenerují IDéčka u formulářů. Zkoušel jsem to na formulářích vytvořených přes komponentu a do ID se generuje pouze „frm-“. To je tak schválně nebo se tam někde sekne ten zbytek a neprotlačí se tam jméno komponenty k tomu frm- ?

PS: zkoušel jsem pro jistotu i sandbox z aktuálního balíku

Ahoj, stáhnul jsem si zmíněnou verzi a např. v sandboxu na sandbox/www/sign/in se mi id generují správně. Pokud máš na mysli formuláře vytvořené přes vlastní komponentu, zkusil bych hledat chybku tam.

ViPEr*CZ*
Člen | 813
+
0
-

Hmm to je divný… jak to kruci… mně se tam generuje toto:

<form action="/sandbox/www/sign/in?do=signInForm-submit" method="post" id="frm-">

Generuje mi to frm-* a místo hvězdičky by mělo být signInForm, ale není tam nic. Zkouším na localhostu s PHP 5.3.9 | Server Apache/2.2.21 (Win32) PHP/5.3.9 | Nette Framework 2.0.2

Tomáš Votruba
Moderator | 1114
+
0
-

Sry, id formuláře mám stejně „blbě“, koukal jsem na id prvků. Ještě testnu dev verzi.
Jo, tam už ok, takže jedině zkusit tu.

Zřejmě s tím souvisí tento a tento commit

Editoval Schmutzka (31. 3. 2012 11:40)

ViPEr*CZ*
Člen | 813
+
0
-

Tak dev mě nenapadlo vyzkoušet… Asi by bylo dobrý ten release přepsat s tímhle upgradem. Díky.

David Grudl
Nette Core | 8142
+
0
-

Tohle je BC break, proto není ve verzi 2.0.2

ji_ri_k
Člen | 44
+
0
-

Taktéž jsem upgradoval o víkendu na nově vydané Nette 2.0.2 hned několik projektů a teď řeším problém s nevygenerovaným id formulářů + (Nette\Diagnostics\Logger::defaultMailer()).

Na stránce mám několik formulářů a všechny mají stejné id. Pro aplikaci to není zásadní problém, ale v HTML kódu musí být ID jedinečné což není. Když mám na stránce 20 formulářů, všechny mají nyní stejné id ⇒ tedy id=„frm-“.

Jestli to dobře chápu z postu výše a z komentářů zde tak by toto nemělo být součásti Nette 2.0.x ale až Nette 2.1.x

Jak to tedy je/bude? Protože id=„frm-“ není předpokládám správné chování.

ViPEr*CZ*
Člen | 813
+
0
-

No to máš ok ještě… ale pokud používá app nějaké jsko a spolehá se na jedinečná IDéčka nebo máš-li css nastavené na jedičná IDéčka, tak je to v pytli. Podle toho co psal David a jestli to dobře chápem oba, tak by to mělo být až od 2.1. (i když pro mě to je docela nepříjemné chování… to já s upgradem ještě počkám)

radas
Člen | 221
+
0
-

Připomínkoval jsem to hned po vydání. Nakonec jsem usoudil, že bude lepší u potřebných prvků formulářů přidat

->setHtmlId('mojeId')

pro případ, že by se to zase v budoucnu změnilo. Jak psal David a ostatní, není nejlepší využívat generovanou hodnotu id.

David Grudl
Nette Core | 8142
+
0
-

Generování frm- je chyba, opravím.

ViPEr*CZ*
Člen | 813
+
0
-

@radas: Mně se to naopak líbí používat… vím jak se jmenuje formulář a vím, že framework má konvenci před jméno přidat „frm-“, tak mi přijde už jako opruz toto „nezneužít“ pro moji lennost a definici vlastního nového ID vypustit.

@David: toto už jsem avizoval prvním příspěvkem… super a díky.

Editoval ViPEr*CZ* (4. 4. 2012 16:57)

radas
Člen | 221
+
0
-

ViPErCZ napsal(a):

…a vím, že framework má konvenci před jméno přidat „frm-“, tak mi přijde už jako opruz toto „nezneužít“ pro moji lennost a definici vlastního nového ID vypustit.

Ano, v současné době tuto konvenci má, ale do budoucna ji mít nemusí, tak jako se to stalo ve větvi 2.1.

ViPEr*CZ*
Člen | 813
+
0
-

Díky za link. Tuhle diskuzi jsem ještě nečetl. No to je docela nemilé co se tam píše… používám IDéčka a přišlo mi to normal si to IDéčko vzít, i když je generované. No asi nezbyde nic jiného než se přizpůsobit.

radas napsal(a):

ViPErCZ napsal(a):

…a vím, že framework má konvenci před jméno přidat „frm-“, tak mi přijde už jako opruz toto „nezneužít“ pro moji lennost a definici vlastního nového ID vypustit.

Ano, v současné době tuto konvenci má, ale do budoucna ji mít nemusí, tak jako se to stalo ve větvi 2.1.

petr.pavel
Člen | 535
+
0
-

radas napsal(a):

Jak psal David a ostatní, není nejlepší využívat generovanou hodnotu id.

Myslím, že to je také důvod, proč teď na stránkách doplňků nejde zobrazit formulář pro odeslání komentáře. Že by David kázal vodu a sám pil víno? ;-)