2010-09-30 5 views
1

J'ai un événement à capturer lorsque la touche de retour est enfoncée dans un champ de saisie de formulaire, mais l'appel ajax n'est pas déclenché, au lieu de le soumettre comme une requête HTTP normale .Comment empêcher la soumission de formulaire et faire jquery ajax call à la place

$("#addurl").keypress(function(e){ 
     switch(e.keyCode){ 
      case 13: 
       // add url ajax call 
       $("body").html(ajax_load) 
       .load(loadUrl,{url:$("#addurl").value},function(responseText){ 
        $("#videos").append(responseText); 
       } 
       return false; 
     } 
    }); 

...

<form><input id="addurl" name="addurl"/></form> 

Le cas 13 déclaration a été tiré correctement lorsque je l'ai testé avec alert (« salut ») alors pourquoi est l'appel ajax ne prend pas la place d'une épanouie normale Demande http?

Répondre

1
$("#inputBoxId").keypress(function(e){    
     if(e.keyCode==13) 
     { 
      e.preventDefault(); /// add prevent default 
      //your code here 

     } 
    }); 
+1

Je pense que vous voulez déplacer le 'preventDefault()' 'dans le cas 13:' bloquer - vous savoir, de sorte que les données que l'utilisateur entre effectivement entrés. –

+0

@stan: vous avez raison, j'ai juste raté que –

+0

hmm ne fonctionne pas vraiment pour moi - même résultat – rutherford

4

vous pouvez simplement utiliser

$(document).ready(function(){ 
//capture the form submission event 
$("#formID").submit(function(){ 
    //do something 
    return false; 
}); 

});

+0

Une meilleure méthode, mais j'ai accepté l'autre réponse qu'il accomplit explicitement ce que je demandais, hourras – rutherford

Questions connexes