关键事件没有解雇

时间:2011-09-15 20:44:42

标签: jquery

我的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会发出警报,但任何其他剂量。

任何人都可以告诉我原因吗?

我需要验证13或9 tab是否被解雇。

感谢。

2 个答案:

答案 0 :(得分:2)

使用keydown而不是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/

答案 1 :(得分:0)

添加条件子句以检查evt == 9:

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