2010-05-31 5 views
3

il semble que les messages #frmToDo encore dosforme encore les messages de retour avec retour faux JS

<form id="frmToDo" name="frmToDo"> 
    ... 
    <a id="btnSubmit" href="javascript:document.frmToDo.submit();">Add</a> 

google.load("jquery", 1); 
google.load("jqueryui", 1); 

google.setOnLoadCallback(function() { 
    ... 

    $("#frmToDo").submit(function() { 
     return false; 
... 

pourquoi cela se produira? pourrait-il être à cause de href="javascript:document.frmToDo.submit(). comment puis-je soumettre le formulaire avec ce lien (je n'ai pas utilisé <input type="submit" /> en raison de problèmes de style, il semble que les boutons sont plus difficiles à styler, esp dans les différents navigateurs) la façon AJAX?

Répondre

3

vous dites que vous n'avez pas utilisé <input type="submit" /> en raison du style alors pourquoi ne pas utiliser,

<a id="btnSubmit" href="#" onclick="return false">Add</a> 

google.setOnLoadCallback(function() { 

    //...OTHER LOGIC 

     $('#btnSubmit').click(function(){ 
      var form = $(this).parent().find('form'); 
      var formdata = $(form).serialize(); 
      $.ajax({ 
      url : 'ajax/receiver.php', 
      data : formdata, 
      success : function(responce) 
      { 
       alert(responce); // do what you want here 
      } 
      }) 
     }); 
    //...OTHER LOGIC 
}); 
+0

ok, mais j'ai utilisé '

1
$('#btnSubmit').click(function(){ 
    $("#frmToDo").submit(); 
}) 

utiliser comme votre gestionnaire de clic sur <a>

0

Comme mentionné ci-dessus, vous pouvez simplement joindre à l'événement directement via la méthode de clic. Cependant, si vous voulez utiliser votre méthode, vous devriez aussi pouvoir le faire. Je pense que parce que vous vous attachez à l'événement via l'API DOM au lieu d'utiliser une fonction inline, vous devez annuler explicitement l'événement plutôt que renvoyer false, au moins pour les soumissions de formulaire. Je crois que cela devrait marcher pour vous.

$('#frmToDo').submit(function(e){ 
    e.preventDefault(); 
}); 
+0

oh j'ai déjà utilisé '$ ('# frmToDo'). submit (...)' pour d'autres fonctions –

Questions connexes