Vykonání druhé js funkce v onSubmit až po ověření formuláře

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Tomáš Votruba
Moderator | 1114
+
0
-

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) &amp;&amp; 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
+
0
-

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

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)

Tomáš Votruba
Moderator | 1114
+
+1
-

Nikdo nic?