Netteforms.js – Javascript validace vypnutí
- Pavel Kravčík
- Člen | 1205
Už je pozdě a jsem otrávený. Jak přesně by se měla vypínat JS validace na straně klienta. Je to hrozně nejasné. Projel jsem starší vlákna a vyzkoušel následující.
{form signForm, 'formnovalidate' => 'formnovalidate', 'novalidate' => 'novalidate'}
{form signForm, formnovalidate => TRUE, novalidate => TRUE}
Nic z toho nefunguje. Tak jsem prostě smazal ten event v JS. Dá se to řešit nějak elegantněji? Díky.
- Pavel Kravčík
- Člen | 1205
Lukeluha napsal(a):
Dle dokumentace nefunguje?
To je vypnutí validace. Já chci validaci zachovat. Jen se chci zbavit javascriptové části, kdy vyskakuje ultra ošklivý alert s povinným polem. Navíc to myslím ani neumí zpracovat ty custom validace, které napíšeš do PHP.
- greeny
- Člen | 405
Pavel Kravčík napsal(a):
Lukeluha napsal(a):
Dle dokumentace nefunguje?
To je vypnutí validace. Já chci validaci zachovat. Jen se chci zbavit javascriptové části, kdy vyskakuje ultra ošklivý alert s povinným polem. Navíc to myslím ani neumí zpracovat ty custom validace, které napíšeš do PHP.
Stačí nepřikládat na danou stránku netteForms.js :)
Pokud chceš jen pro daný form, tak nejjednodušší je přepsat v JS
metodu Nette.validateForm tak, aby např. pokud má form
data-nette-off
, tak se nevaliduje:
<script>
var original = Nette.validateForm;
Nette.validateForm = function (form) {
if ($(form).data("data-nette-off")) {
original(form);
}
}
</script>
PHP validace to nezpracuje, pokud si je nenapíšeš v JS sám. Když napíšeš JS validaci, tak jí přidáš do Nette.validators a bude ti fungovat
- Pavel Kravčík
- Člen | 1205
greeny napsal(a):
Stačí nepřikládat na danou stránku netteForms.js :)
Pokud chceš jen pro daný form, tak nejjednodušší je přepsat v JS metodu Nette.validateForm tak, aby např. pokud má form
data-nette-off
, tak se nevaliduje:
Jasně, ale mám za to, že tím přijdeš o toggle fičury a tak dále.
Jinak díky za řešení, udělal jsem to podobně, ale moc hezké mi to nepřijde. A pro začátečníka si myslím skoro neřešitelné. :)