Событие нажатия клавиши не генерируется в Chrome на клавише ENTER? - программирование
Подтвердить что ты не робот

Событие нажатия клавиши не генерируется в Chrome на клавише ENTER?

Мое приложение требует ввода от пользователей, при вводе значения в текстовое поле пользователи нажимают Enter (Return Key), и это вызывает кнопки onclick. Это отлично работает в IE, FF, но не в Chrome. При входе в хром событие нажатия клавиши не генерируется Вот мой фрагмент кода

 $('#myDiv').keypress(function (e) {
    alert("Key  pressed");
    if (e.keyCode == $.ui.keyCode.ENTER) {

     alert("enter pressed");
    }
  });

Может ли кто-нибудь предоставить информацию об этом?

4b9b3361

Ответ 1

Метод кросс-браузеров:

$('#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/

Ответ 2

keypress - это правильное событие для обнаружения того, какой символ был введен (хотя в этом конкретном случае работа с ключом ввода keydown тоже будет работать). Однако, как получить символ, набранный в событии keypress, несовместим между браузерами, поэтому jQuery нормализуется в свойстве which. Вот что вы хотите:

$('#myDiv').keypress(function (e) {
    alert("Key pressed");
    if (e.which == $.ui.keyCode.ENTER) {
        alert("enter pressed");
    }
});

Определяющая ссылка для ключевых событий: http://unixpapa.com/js/key.html

Ответ 3

Эта ссылка может быть полезна для вас... Api Jquery Key Press  или попробуйте с этим кодом

Измените нажатие клавиши на клавиатуре:

$('#myDiv').keydown(function(e) {

   // your logic
   alert("Key  pressed");
   if (e.keyCode == $.ui.keyCode.ENTER) {
       alert("enter pressed");
   }

});

Ответ 4

Chrome работает с ключом ENTER, а не 13.

это работает для меня во всех браузерах, включая CHROME.

  $('#myDiv').keydown(function(e) {
       if ((e.which == 13) || (e.which == keyCode.ENTER)) {

    alert("enter pressed");
  }