繁体   English   中英

在ENTER键上的Chrome中未生成按键事件?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM