Podivně přenášený disabled checkbox

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

Ahoj, nejsem si na 100% jistý, ale mam pocit, že Nette 9.3 přenáší checkbox i když je disabled. Kdyby to přenášelo hodnotu, tak je to docela dobré, ale bohužel isset je vždy true a hodnota vždy false.

Testoval sem to v veliké aplikaci a nikde jinde – mam chybu já, nebo je to tak i v čistém Nette?

marek.dusek
Člen | 99
+
0
-

Zda se, ze pletes vice veci dohromady:

  1. „prenaseni“ ve smyslu hodnoty z prohlizece do POSTu neni mozne, protoze to zadny nedela (od toho tam to disabled je; jinak bys pouzil readonly)
  2. pokud prvek pridas do formulare, tak tam existuje i pri vyhodnocovani (ne hodnota z POSTu, ale prvek jako takovy z definice formulare s pripadnou default hodnotou);

Asi by bylo nejlepsi, kdybys popsal, co se vlastne snazis udelat.

Mikulas Dite
Člen | 756
+
0
-
  1. Ano, to není, proto se mi to zdá divné.
  2. Taky souhlasím. To není vůbec problé, jasně že můžu použít třeba isDisabled. Avšak pokud mi vrací hodnotu na getValue(), tak z toho nemůžu zjistit jestli byla disabled nebo ne. Měl sem za to, že každý jiný disabled element (kromě checkboxu) se do formu v onSubmit nedostane. V Nette.
norbe
Backer | 405
+
0
-

Problém u checkboxu bude asi v tom, že pokud není zaškrtnutý, tak se nepřenáší. Na serveru tedy není možné zjistit, jestli je nezaškrtnutý, nebo nastaven na diabled.

Mikulas Dite
Člen | 756
+
0
-

Přesně o tom mluvím. Bez instance formu to nejde.

hrach
Člen | 1834
+
0
-

norbe napsal(a):
Problém u checkboxu bude asi v tom, že pokud není zaškrtnutý, tak se nepřenáší. Na serveru tedy není možné zjistit, jestli je nezaškrtnutý, nebo nastaven na diabled.

na to se dělá jednoduchý workaround, nevím jestli je v nette, ale jestli ne, tak se to dá jednoduše vyřešit:

<input type="hidden" name="trvale_prihlaseni" value="0" />
<input type="checkbox" name="trvale_prihlaseni" value="1" /> Trvalé přihlášení