2010-08-11 97 views
39

試圖讓jQuery檢測輸入輸入,但空間和其他鍵被檢測到,輸入不被檢測到。什麼是錯的下面:jQuery - keydown/keypress/keyup 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/

回答

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 !!順便說一句,有一個IDE,你會推薦可以檢查大括號?嘗試使用aptana,但難以適應它,它沒有一個快速預覽! – ina 2010-08-11 21:41:04

+4

Notepad ++ FTW :) -http://notepad-plus-plus.org/ – 2010-08-11 21:43:10

+0

如果你在OSX上,那麼Textmate會爲我贏得雙手勝利。 Zend Studio和Aptana很好,我相信你可以手動添加快捷鍵/熱鍵來做你想做的事情? 對'event.which'感興趣,以前從未知道: https://developer.mozilla.org/en/DOM/event.charCode#Notes – balupton 2010-08-12 05:59:20

3

我想你會與keyup事件鬥爭 - 因爲它首先觸發按鍵 - 你將無法停止的傳播第二個如果你想排除輸入密鑰。