2011-09-15 64 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