Netteforms.js – Javascript validace vypnutí

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Pavel Kravčík
Člen | 1205
+
+2
-

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.

Lukeluha
Člen | 130
+
0
-

Dle dokumentace nefunguje?

Pavel Kravčík
Člen | 1205
+
+2
-

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
+
0
-

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
+
0
-

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é. :)