verifikácia mailu – zavináč, prázdne, alebo valídny mail + podobne url
- elvis
- Člen | 11
Zdravím. S Nette začínam. Potreboval by som verifikovať vstup na validitu, či je to mail, ale zároveň aby bolo políčko dopredu vyplnené zavináčom a aby ho užívateľ mohol aj nevyplniť, alebo prípadne aj z nejakého náhodného dôvodu zmazať ten zavináč a tak odoslať. skúšal som addRule(Form:EMAIL.. skombinovať so setEmptyValue(‚@‘… alebo setDefaultValue(‚@‘… ale stále si to pýtalo aby som ten mail vyplnil. Dá sa to nejak, alebo to musím riešiť vlastným regulárnym výrazom?
Niečo podobné by som chcel s url adresou. Tam by som chcel, aby užívatel mohol zadať adresu s http:// na začiatku, ale mohol aj bez a aj nevyplnené aby to mohol nechať, na serverovej strane sa to už spracuje do jednotnej podoby.
- Filip Procházka
- Moderator | 4668
Co takto nějak?
$form->addText('email')
->setEmptyValue("@")
->addCondition(~Form::EQUAL, "@")
->addRule(Form::EMAIL)
- duke
- Člen | 650
Nebo přesněji:
$form->addText('email')
->setEmptyValue('@')
->addCondition($form::FILLED)
->addRule($form::EMAIL);
EDIT: Resp. Hospilanovo řešení je vlastně špatně. Jde o to, že Nette automaticky ‚@‘ v inputu nahradí prázdným řetězcem (protože byla použita metoda setEmptyValue narozdíl třeba od setDefaultValue), a tudíž i pro případ ‚@‘ bude ta jeho podmínka splněna.
Editoval duke (13. 4. 2012 13:55)