簡體   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