nette forms maxLength validacia
- spown
- Člen | 5
zdravim, da sa nejako jednoducho bez nutnosti vytvarat vlastne formularove prvky urobit to, ze textarea bude mat validacne pravidlo na maxlength
addRule($form::MaxLength, 'Max povolena delka nadpisu je %d znakov', News::MAX_HEADLINE_LENGTH)
ale zaroven sa nebude renderovat do html atribut maxlength?
dakujem
- kminekmatej
- Generous Backer | 38
Myslím se že nedá a ani nedává smysl. Ten MaxLength je vyrobený přesně k tomuhle. Dovedu si představit nějaké řešení na úrovni Javascriptu které to bude omezovat, nicméně bylo by to drbání pravou rukou za levym uchem
- spown
- Člen | 5
dovod je taky, ze uzivatel najcastejsie do danej textarea kopiruje texty a je neziaduce aby mu dany text orezavalo do XY znakov > potrebujem mu umoznit tam vlozit aj dlhsi text ako je nastavena validacia maxlength a nasledne az po odoslani formularu v pripade prekrocenia danej dlzky mu vyhodit chybu
a pride mi skarede riesenie posielat do setMaxLength nejaku bulharsku konstantu…
$form->addTextArea('headline', 'Nadpis')->setMaxLength(99999)
Editoval spown (16. 11. 2023 10:25)
- Lumeriol
- Generous Backer | 64
spown napsal(a):
dovod je taky, ze uzivatel najcastejsie do danej textarea kopiruje texty a je neziaduce aby mu dany text orezavalo do XY znakov > potrebujem mu umoznit tam vlozit aj dlhsi text ako je nastavena validacia maxlength a nasledne az po odoslani formularu v pripade prekrocenia danej dlzky mu vyhodit chybu
a pride mi skarede riesenie posielat do setMaxLength nejaku bulharsku konstantu…
$form->addTextArea('headline', 'Nadpis')->setMaxLength(99999)
V tom případě nedávej validaci do formulářového prvku, ale použij
$form->onValidate[], která ti provede validaci po submitu a vyhodí
případnou chybu, ale nezpracuje/neuloží ti ten formulář.
V onValidate si můžeš spočítat počet znaků a vyhodit informaci o tom,
že je to moc dlouhé skrze $form->addError().
Více informací najdeš tady.
Editoval Lumeriol (16. 11. 2023 12:41)
- David Grudl
- Nette Core | 8239
Na straně Nette nic neměň a dopln JS zvýrazňovač limitu, jako má třeba Twitter, který zároveň odstraní ten atribut.