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)