[英]keypress event not generated in Chrome on ENTER Key?
我的应用程序需要用户输入,在文本框中输入值时,用户按Enter(返回键)并调用按钮onclick事件。 这适用于IE,FF但不是Chrome。 在输入chrome时,不生成keypress事件这是我的代码片段
$('#myDiv').keypress(function (e) {
alert("Key pressed");
if (e.keyCode == $.ui.keyCode.ENTER) {
alert("enter pressed");
}
});
有人可以提供这方面的意见吗?
跨浏览器方法:
$('#myDiv').keydown( function(e) {
var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
if(key == 13) {
e.preventDefault();
alert("enter pressed");
}
});
在Chrome 24上测试: http : //jsfiddle.net/PTauw/1/
keypress
是检测哪个字符已被输入的正确事件(尽管在这种特殊情况下,检测输入键的情况, keydown
也可以正常工作)。 但是,如何获取在按键事件中键入的字符在浏览器之间是不一致的,因此jQuery会对which
属性进行规范化。 这是你想要的:
$('#myDiv').keypress(function (e) {
alert("Key pressed");
if (e.which == $.ui.keyCode.ENTER) {
alert("enter pressed");
}
});
关键事件的权威参考: http : //unixpapa.com/js/key.html
此链接可能对您有所帮助......
Api Jquery Key按或尝试使用此代码
将按键更改为keydown:
$('#myDiv').keydown(function(e) {
// your logic
alert("Key pressed");
if (e.keyCode == $.ui.keyCode.ENTER) {
alert("enter pressed");
}
});
Chrome似乎使用ENTER
键而不是13
。
这适用于所有浏览器,包括CHROME
。
$('#myDiv').keydown(function(e) {
if ((e.which == 13) || (e.which == keyCode.ENTER)) {
alert("enter pressed");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.