2009-11-22 3 views
0

Je souhaite que l'action de soumission sur un formulaire() soit automatiquement déclenchée lorsque tous les éléments d'entrée de ce formulaire sont remplis/remplis. Comment le faire en utilisant ajax?Comment l'action de soumission sur un formulaire (<form></form>) peut-elle être déclenchée automatiquement lorsque tous les éléments d'entrée dans ce formulaire sont remplis/remplis?

+6

en êtes-vous sûr? ça sonne plutôt ennuyeux ... – David

+3

Ça me semble une mauvaise idée. Que faire si l'utilisateur déforme quelque chose dans l'un des champs? Il n'y a aucun moyen de vérifier et de corriger les données avant qu'elles ne soient soumises. –

+0

Je veux faire ceci soumettre par Ajax. – Steven

Répondre

11

Quelque chose comme ce qui suit:

$("#myForm :input").blur(function() { 
    if($('#myForm :input[value]').length == $('#myForm :input').length) { 
     $(this).closest("form").submit(); 
    } 
    return false; 
}); 

Notez les points suivants:

  • Le sélecteur :input correspond tous, entrée textarea, des éléments de sélection et bouton . Le sélecteur closest renvoie l'élément parent le plus proche.
+0

ouf qui était rapide. joli. –

+1

+1 pour une bonne réponse à la question, mais je suis d'accord avec les commentateurs qui ont dit que cela semblait être une mauvaise idée. – RichieHindle

+0

Je ne pense pas que le sélecteur ': empty' fonctionnera sur les champs de saisie de type text comme vous le souhaitez ... – mtyaka

0

Mise à jour: En plus de Karim79.

$("#myForm :input").blur(function() { 
    var hasEmpty = false; 
    if($('#myForm :input[value]').length == $('#myForm :input').length) { 
     $(this).closest("form").submit(); 

    var name = "", email = ""; //Get the value for name and email from the form 
    var dataString = 'name='+ name + '&email=' + email; 
      $.ajax({ 
       type: "POST", 
       url: "page.aspx", 
       data: dataString, 
       success: function() { 
       $('#message').html("<h2>Form Submitted!</h2>");//Display message 
       } 
      }); 
    } 
    return false; 
}); 

Essayez ceci:

$ ("form") [0] .submit();

Vous devrez appeler cette fonction après la validation d'un champ.

Et vérifiez le site this.