2010-08-11 5 views
39

Si vous tentez d'obtenir que jQuery détecte une entrée, mais que l'espace et les autres touches sont détectés, l'entrée n'est pas détectée. Quel est le problème ci-dessous:jQuery - keydown/keypress/keyup Détection ENTERKEY?

$("#entersomething").keyup(function(e) { 
    alert("up"); 
    var code = (e.keyCode ? e.keyCode : e.which); 
    if (code==13) { 
     e.preventDefault(); 
    } 

    if (code == 32 || code == 13 || code == 188 || code == 186) { 
     $("#displaysomething").html($(this).val()); 
}); 

<input id="entersomething" /> 
<div id="displaysomething"&gt;&lt;/div&gt; 

http://jsfiddle.net/zeRrv/

Répondre

70

JavaScript/JQuery

$("#entersomething").keyup(function(e){ 
    var code = e.which; // recommended to use e.which, it's normalized across browsers 
    if(code==13)e.preventDefault(); 
    if(code==32||code==13||code==188||code==186){ 
     $("#displaysomething").html($(this).val()); 
    } // missing closing if brace 
}); 

HTML

<input id="entersomething" type="text" /> <!-- put a type attribute in --> 
<div id="displaysomething"></div> 
+0

doh !! btw existe-t-il un IDE que vous recommanderiez pour vérifier les accolades? essayé d'utiliser aptana, mais ayant de la difficulté à s'y adapter et il n'a pas de raccourci pour l'aperçu in-ide! – ina

+4

Notepad ++ FTW :) -http: //notepad-plus-plus.org/ –

+0

Si vous êtes sur OSX, Textmate gagne la main pour moi. Zend Studio et Aptana étaient sympa et je suis sûr que vous pouvez ajouter manuellement des raccourcis/raccourcis clavier pour faire ce que vous voulez ??? Intéressant à propos de 'event.which', jamais connu auparavant: https://developer.mozilla.org/en/DOM/event.charCode#Notes – balupton

3

Je pense que vous débattez avec keyup événement - comme premier déclenche keypress - et vous ne serez pas en mesure d'arrêter la propagation de le second si vous voulez exclure la touche Entrée.

Questions connexes