2011-09-15 66 views
0

我的JavaScript關鍵事件:沒有發射

$("#test").keypress(function(e){ 
     if (document.all){ var evt = event.keyCode; } 
     else if(e.which) { var evt = e.which;  }   
     else    { var evt = e.charCode; } 

     if (evt == 13){ // with any other key, the alert dos not fire 
      alert(evt); 
     } 
     return true; 
}); 

Jsfiddle demo

鍵碼13起Enter火災警報,但任何其他dosent。

任何人都可以告訴我爲什麼嗎?

我需要驗證是否13或9 tab被解僱。

謝謝。

回答

2

使用​​,而不是keypress

$('#test').live('keydown', function(e) { 
    var k = e.keyCode || e.which; 

    if (k == 9 || k == 13) { 
     e.preventDefault(); 
     alert(k); 
    } 
}); 

工作:http://jsfiddle.net/hunter/cDVek/15/

+0

爲什麼如果我改變了13 9(標籤)DOS不會觸發警報? –

+0

是的,現在可以! –

0

添加一個條件子句檢查EVT == 9:

if (evt == 13) { 
    alert(evt); 
} else if (evt == 9) { 
    alert(evt); 
} 
+0

aready試試這個,dos不工作,他只火了keycode 13 –

+0

檢查這個答案http://stackoverflow.com/questions/3362/capturing-tab-key-in-text-box – rodowi

+0

我看到,使用「e 「參數,請嘗試:evt = e.keyCode – rodowi