Názvy fromulárových prvkov a Id v nette forms

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

Nette mi automaticky u každého formulárového prvku generuje id ktoré sa skladá z názvy formuláru + názvu formulárového prvku. Napríklad „frmsignInForm-username“. Ako to zmeniť tak aby tam nebol ten názov formuláru ale len názov formulárového prvku v tomto prípade „username“?

ViPEr*CZ*
Člen | 807
+
0
-

Je na to metoda… projít API dokumentaci… setHtmlId

hustleR
Člen | 8
+
0
-

vdaka, ale je to

Nette\Forms\Controls\BaseControl::$idMask = '%2$s'
Tomáš Votruba
Moderator | 1114
+
0
-

Skvělé zjištění! Kdyby se někdo pídil, více zde.

Filip Procházka
Moderator | 4668
+
0
-

Nejsem si jistý, jestli by to mělo být v dokumentaci, je to dost zásadní ohnutí chování.

Tomáš Votruba
Moderator | 1114
+
0
-

Proto zatím na devu. Nicméně, když už je to public (a vůbec existence sama), tak proč to nevyužít? Tak často se naráží private proměnné/metody, s kterým nejde nic udělat, že jedna výjimka člověka překvapí :).

Případně by mě zajímalo (toto asi na Davida):

  • Proč jde o public a jak lze/je doporučeno využívat?
  • Proč je použit onen defaultní formát?

Osobně se mi to hodí jako příjemnější získání id pro jQuery a jiné js, bez nutnosti dalšího upravování class/id prvku.

Co si o tom myslíte?

Jan Tvrdík
Nette guru | 2595
+
0
-

Schmutzka wrote:

Proč jde o public a jak lze/je doporučeno využívat?

Je to public, aby to vývojáři mohli měnit a úprava je tedy (dle mého názoru) zcela čistá, ač téměř vždy zbytečná.

Proč je použit onen defaultní formát?

Ten prefix frm je tam imho čistě kvůli tomu, aby se minimalizovala šance jakékoliv kolize s jiným ID.