2010-11-27 4 views
3

Pourquoi ce travail:jquery submit() ne fonctionne pas avec le handle?

$("form[data-remote].edit_item").submit(); 

Mais cela ne fonctionne pas?

$("form[data-remote].edit_item").submit(function() { 
      alert('goo') 
    }); 
+0

Il est possible que votre page soit déchargée avant l'exécution du gestionnaire submit()? –

+0

pas de déchargement en cours, tout est AJAX enregistrer – AnApprentice

Répondre

4

Avec cela, vous invoquer l'événement submit:

$("form[data-remote].edit_item").submit(); 

Avec cela, vous êtes joindre un gestionnaire à l'événementsubmit:

$("form[data-remote].edit_item").submit(function() { 
    alert('goo'); 
}); 

Avec la seconde que vous dites "alerte lorsque leévénementarrive » ... vous n'êtes pas dire « hé, soumettez », pour que vous avez encore besoin d'appeler .submit(), ou ce qu'il est un raccourci pour: .trigger("submit") ... comme ceci:

$("form[data-remote].edit_item").submit(function() { 
    alert('goo'); 
}).submit(); 

. ..mais à ce moment-là, pourquoi ne pas simplement alerter séparément? comme ceci:

$("form[data-remote].edit_item").submit(); 
alert('goo'); 
0

est-ce que cela affiche votre alert()?

$("form[data-remote].edit_item").submit(function(e) { 
    e.preventDefault(); 
    alert('goo'); 
}); 
1

Il vous manque un point-virgule après l'appel d'alerte.

+0

Bien que vrai, il n'affecte pas le résultat du tout ici :) –

0

Le premier soumet le formulaire, le second établit un rappel de fonction à exécuter lors de la soumission du formulaire.