Ručně vykreslený hidden input bez id atributu

Václav Mašín
Člen | 26
+
0
-

Zdravím,

předělávám teď jeden projekt ze staršího Nette 2.0 na aktuální a narazil jsem tam už několikrát na to, že v aktuálním Nette (oproti tomu staršímu) se u ručně vykresleného hidden input elementu nevyrenderuje „id“ atribut. Je toto očekávané chování?

Jinak tedy pokud Nette (nebo resp. tedy tady spíš Latte) nechám onen input na konci formuláře vyrenderovat automaticky, tak tam je to v pořádku. Možná je tedy problém nebo chyba se vůbec pokoušet o to ruční vykreslování?

I u toho ručně zadaného prvku si tam to „id“ můžu nakonec tedy doplnit explicitně sám (ověřeno), takže to není žádný zásadní problém. Jen mě toto stávající chování teď už několikrát při práci na té aktuální předělávce tak trochu doběhlo, tak jsem si řekl, že zkusím vznést dotaz.

Díky

VM

Michal Kumžák
Člen | 106
+
+1
-

Já teda nemám id u hidden inputu ani když to je přímo generovaný formulář. Nevidím tam důvod ho tam mít. Pokud ti jde o zjištění hodnoty toho inputu v javascriptu, tak to můžeš vzít i podle názvu inputu.

Šaman
Člen | 2635
+
0
-

@VáclavMašín: Bez kódu těžko radit. Vypadá to, že tvůj ručně vykreslený input není napojený na formulář, ale proč, to netuším. Jinak by tam to id mělo být.

Editoval Šaman (18. 10. 2021 0:33)

Václav Mašín
Člen | 26
+
0
-

Tak ještě koukám, že jsem vlastně neměl pravdu s tím automaticky generovaným hidden inputem, že ten „id“ atribut tam v takovém případě je. Očividně tam také není…

Každopádně jak jsem teď před chvíli „objevil“, tak se jedná o zamýšlené chování. Z poznámek k vydání Nette 2.3:

  • Buttons and Hidden fields are generated without HTML ID. Relying on autogenerated ID is very bad, if you want ID, set it via setHtmlId()

Takže tím je to vyřešené.

Díky všem za reakce.