2014-08-30 3 views
-1

Je veux soumettre un formulaire avec jquery, mais cela ne fonctionne pas, j'essaie de déboguer mais trouvé même pas aller dans la méthode de soumission. ne peut pas comprendre pourquoijquery soumettre formulaire ne fonctionne pas

$("#btn").click(function(){ 
     $('form').submit(function(event){ 
     alert('11'); 
     event.preventDefault(); 
     $.post("${contextPath}/announcement/addAnnoPubToPerson.action",$(this).serialize()).done(alert('done')); 
     }); 
    }); 

aussi j'ai essayé

$("#btn").click(function(){ 
     $(document).on('submit','form',function(event){ 
     alert('11'); 
     event.preventDefault(); 
     $.post("${contextPath}/announcement/addAnnoPubToPerson.action",$(this).serialize()).done(alert('done')); 
     }); 
    }); 

ne fonctionne toujours pas.

+0

est sur la console – budamivardi

+0

il avertissement ou une erreur Avez-vous vérifié votre code par firebug? Avez-vous eu des erreurs? – Farshad

+0

ne pas, juste l'ignorer, c'est tout –

Répondre

1

Essayez ceci:

$("#btn").click(function(){ 
    $("form").trigger('submit'); 
}); 

    $('form').submit(function(event){ 
    alert('11'); 
    event.preventDefault(); 
    $.post("${contextPath}/announcement/addAnnoPubToPerson.action",$(this).serialize()).done(alert('done')); 
    }); 

La réponse ci-dessus est utile si votre #btn n'est pas le type d'entrée soumettre, si son type d'entrée puis soumettre seulement au-dessous morceau de code fonctionnera:

$('form').submit(function(event){ 
    alert('11'); 
    event.preventDefault(); 
    $.post("${contextPath}/announcement/addAnnoPubToPerson.action",$(this).serialize()).done(alert('done')); 
    }); 

Le problème dans votre cas est parce que «cliquez» et «soumettre» sont deux événements différents de jquery, «soumettre» des incendies d'événement pour le formulaire automatiquement lorsque vous appuyez sur un bouton d'envoi de type d'entrée.

+0

Celui-ci fonctionne, mais pourquoi? semble pas différent –

+1

parce que 'click' et 'submit' sont deux événements différents de jquery ... 'soumet' les feux d'événement pour le formulaire automatiquement quand vous pressez un bouton de soumission de type d'entrée..si dans votre cas dans votre '#btn' est de type submit alors inutile d'écrire '$ ("# btn"). click (function() {});' il suffit d'écrire $ ('formulaire'). submit (fonction (événement) et c'est fait –

+0

maintenant je le comprends, merci! –

0

Utiliser AJAX Au lieu de cela:

$('.success-message').hide(); 
$('.error-message').hide(); 

$('.get form').submit(function(e) { 
    e.preventDefault(); 
    var postdata = $('.get form').serialize(); 
    $.ajax({ 
     type: 'POST', 
     url: 'assets/submit.php', 
     data: postdata, 
     dataType: 'json', 
     success: function(json) { 
      if(json.valid == 0) { 
       $('.success-message').hide(); 
       $('.error-message').hide(); 
       $('.error-message').html(json.message); 
       $('.error-message').fadeIn(); 
      } 
      else { 
       $('.error-message').hide(); 
       $('.success-message').hide(); 
       $('.get form').hide(); 
       $('.success-message').html(json.message); 
       $('.success-message').fadeIn(); 
      } 
     } 
    }); 
}); 
2

Les deux vos gestionnaires de clic btn joindre un auditeur à une forme soumettre et rien d'autre. Cliquer sur le bouton ne soumettra pas le formulaire. Si le bouton déclenche une forme normale de soumettre, vous pouvez laisser le gestionnaire de clic entièrement et ce qui suit devrait fonctionner:

$('form').submit(function(event){ 
    alert('11'); 
    event.preventDefault(); 
    $.post("${contextPath}/announcement/addAnnoPubToPerson.action",$(this).serialize()).done(alert('done')); 
    }); 

Si le bouton ne déclenche pas une forme normale présenter, puis utilisez la réponse de @ Exception.

Il est également utile de noter que $ ('form'). Submit() écoutera toutes les soumissions de formulaire, vous pouvez empêcher la gestion des soumissions sur d'autres formulaires en donnant une classe ou un identificateur ce qui suit à la place:

$('form.THEFORM').submit(...) 
Questions connexes