Úpravy ve formulářích v dev

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

Ahoj,

používám nejnovější nette dev z githubu. Chci se poptat na několik věcí.

  1. Zmizel mi atribut id u buttonu a u hidden inputu. Je to záměr?
  2. Pokud mám select a v něm prompt, tak dostanu při setDefaults výjimku Value '' is out of range of current items. Jak mám toto řešit?
  3. Inputům, které nastavím na disabled se nastaví hodnota NULL. Jde o nějaké bezpečnostní opatření?
frosty22
Člen | 373
+
0
-

Ahoj,

  1. Prompt hodnota již asi není prázdný řetězec, ale NULL, čili když voláš setDefaults, tak bys tam měl mít NULL. Toto v podstatě vychází i z logiky například ukládání do databáze (či ukládání v podstatě kdekoliv), když může být ve sloupci pouze nějaké cizí klíče, či nemusí být vyplněný, tak tam jsou buď hodnoty a nebo NULL, nikoliv prázdný řetězec.
  2. Pokud vím, tak takhle to je snad od jakživa, smysl „disable“ je v podstatě ten, že element je zakázaný, tudíž se neočekává změna hodnoty a jelikož je zakázaný, tak má NULL hodnotu – nejsem si jist, jestli to má i nějaký praktický důvod, či pouze tento filozofický :)
Michalek
Člen | 211
+
0
-
michal.lohnisky
Člen | 64
+
0
-
  1. No, spíš mě zajímá ten důvod, protože se teď nedají tak dobře adresovat v JavaScriptu, atd. Nenapadá mě důvod, proč by tam to id vadilo.
mkoubik
Člen | 728
+
0
-

Pokud to id potřebuješ, tak si ho nastav ručně. Není důvod aby ti ho framework vnucoval. Nette ho přednastavuje jen tam, kde ho samo potřebuje.

Filip Procházka
Moderator | 4668
+
0
-

Jak již bylo několikrát řečeno :) Neměl by ses spoléhat na idčka co generuje Nette, protože strategie se může změnit. Pokud je potřebuješ, je tu metoda setHtmlId

michal.lohnisky
Člen | 64
+
0
-

Na nastavení id stačí pouze

$this->addHidden('id')->htmlId;