Vykonání druhé js funkce v onSubmit až po ověření formuláře
- Tomáš Votruba
- Moderator | 1114
Zdravím (používám Nette 2.0-dev),
v onSubmit mám funkci save();, která ukládá data z flashe:
<script>
function save(str){
getID('flash').save();
}
</script>
Potřebuji ale zachovat js ověření formuláře, které přidáním této
fce jaksi vypnu.
Takto vypadá funkční řešení, ale bez validace:
<form action="form.php" method="post" target="_top" id="kresleni_form" name="myForm" onsubmit="save();return false;">
Zkoušel jsem je spojit pomocí „&&“ jak je psát zde, ale bez efektu.
<form action="form.php" method="post" target="_top" id="kresleni_form" name="myForm" onsubmit="return validateForm(this) && save();return false;">
Stejně tak mi pouhou validaci nefunguje (ani verze
nette.validateForm
):
<form action="form.php" method="post" target="_top" id="kresleni_form" name="myForm" onsubmit="return validateForm(this)">
- voda
- Člen | 561
Na tohle by měl fungovat Nette.addEvent.
<script>
Nette.addEvent(document.getElementById('kresleni_form'), 'submit', save);
</script>
Ještě si dej pozor, aby se to spouštělo až ve chvíli, kdy bude formulář již existovat.
- Tomáš Votruba
- Moderator | 1114
Dobrý směr, díky. Potřebuji aby proběhla fce save()
a pak
se zastavila (potřebuje totiž pár vteřžin na uložení flashe), proto ono
return false
. Po proběhnutí fce save()
dojde
k odeslání skrz ni.
Uvedený příklad sice funguje, ale provede save
, i když
validace neproběhla vpořádku.
Nešlo by to nějak podmínit? Pokud validní =
save();return false
, pokud ne return false
?
Něco takového:
<script>
Nette.addEvent(document.getElementById('kresleni_form'), 'submit', if(Nette.validateForm==TRUE) {save()}; return false);
</script>
Děkuji.
Editoval Schmutzka (24. 3. 2011 16:43)