Autor Zpráva
quatzael
Profil
Řeším kontrolu formuláře (viz. předchozí vlákno)
Ve funkci: jQuery submit mám zjednodušeně tohle:

$("#form").submit(function(e){
e.preventDefault();
// nějaký script

$.when(ajax(value1), ajax(value2)).then(function (result1, result2) {
  if (result1 === "true" && result2 === "true")
document.getElementById("form").submit();
});

Jenže se zdá, že ten script běží pořád dokola. Dá se to vyřešit nějak elegantně?
Destiny_1
Profil
quatzael:

Jenže se zdá, že ten script běží pořád dokola. Dá se to vyřešit nějak elegantně?

Jo běží dokola, protože tímhle document.getElementById("form").submit(); spouštíš tohle $("#form").submit(function(e){

To se dá vyřešit třeba takhle:

var starter=1;

$("#form").submit(function(e){
if (starter){
e.preventDefault();
}
// nějaký script
 
$.when(ajax(value1), ajax(value2)).then(function (result1, result2) {
  if (result1 === "true" && result2 === "true")

starter=0;

document.getElementById("form").submit();
});
Chamurappi
Profil
Reaguji na Destinyho_1:
Jo běží dokola, protože tímhle document.getElementById("form").submit(); spouštíš tohle $("#form").submit(function(e){
Není pravda. Odeslání formuláře metodou submit nevyvolává událost onsubmit.
Nevím, co quatzaelovi jak běží či neběží, ale v tomto problém nebude.
quatzael
Profil
Destiny_1:
Díky za odpověď. Mě to taky napadlo, že to takhle budu muset vyřešit, ale myslel jsem, že je nějaký elegantnější řešení.


Chamurappi:
Aha. Tak to je možný, mám tam ještě nějaký bugy, takže to asi neodesílá proto..
Destiny_1
Profil
Chamurappi:
tak proč mi tohle vypisuje do logu pořad dokola "test"?

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
    
$(document).ready(function(e){
$("form").submit(function(e){
 e.preventDefault();
 console.log("test");
 $("#test").submit();
});    



});

</script>
<form method="post" id="test">
    <input type="submit" value="odeslat">   
</form>
quatzael
Profil
Destiny_1:
Není náhodou v tomhle rozdíl mezi:
document.getElementById("test").submit(); a $("#test").submit(); ?
_es
Profil
quatzael:
Pardon, zmazal som to, nepozorne som si to prečítal.
Destiny_1
Profil
quatzael:

Jojo pravda, omlouvám se...
quatzael
Profil
_es:
Pardon, zmazal som to, nepozorne som si to prečítal.
Jasně, ok. Já jsem si to stihl přečíst, ale nepochopil jsem (podobně jako v předchozím vlákně..)
_es
Profil
quatzael:
Není náhodou v tomhle rozdíl mezi:
document.getElementById("test").submit(); a $("#test").submit(); ?
Vo výsledku to odošle formulár v oboch prípadoch „tradične“.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0