addRule na addUpload přidá automaticky required

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

Když přidám novou podmínku na addUpload('myUpload, …), třeba:

->addRule(Form::IMAGE, 'Avatar musí být JPEG, PNG nebo GIF.')

Tak tento input se automaticky stane required, protože mě to formulář neodešle dokud tam nezvolím nějaký soubor. Chci pouze, aby tam byla tato podmínka, ale zároveň pokud tam uživatel nevloží žádný obrázek, tak se nic nestane. Díky.

Hurass
Člen | 114
+
+1
-

Toto tu je už několikrát. Zkus hledat.

Před ->addRule přijdej ještě:

->addCondition(Form::FILLED)
ali
Člen | 342
+
0
-

@emmil neplati jenom pro upload, ale pro jakykoliv prvek co pridas do formulare. Jakmile pridas jakekoliv pravidlo (bez pouziti condition, viz @Hurass), prvek se stava „required“.

emmil
Člen | 26
+
0
-

@ali Díky za poznámku, že se to přidá ke každému inputu. @Hurass díky za odpověď. Hledal jsem, nenašel, proto jsem se zeptal. Přihoď odkaz, ve kterém vláknu to je, budu za něj rád, třeba se naučím ještě něco nového.

Hurass
Člen | 114
+
0
-

@emmil třeba tady

Zax
Člen | 370
+
+1
-

To co píše @ali není úplně pravda, addRule samo o sobě nezpůsobí, že by byl prvek automaticky required. Jde jen o logiku samotného pravidla – upload políčko má jasně daný, že tam smí být jen obrázek, tzn. pochopitelně nepřipustí prázdnou hodnotu.

Kdyby šlo o textové pole s pravidlem „musí být string s délkou 0–20 znaků“ (opět bez addCondition), pak samozřejmě není potřeba pole vyplňovat.

emmil
Člen | 26
+
+1
-

Díky všem za odpovědi, mohli by tady přidat jako na stackoverflow třeba označení duplicitní otázky. Někdy se člověk může zeptat na tu samou otázku vyhledávače 10 různými způsoby :) a třeba se mu nepodaří najít na ni odpověď. Abych byl upřímný, vždycky hledám tyhle věci v angličtině, je proto fascinující sledovat, jak je tohle forum v češtině živé.