jQuery Event Keypress: какая клавиша была нажата?

Лучшим способом обработки дат в knockoutjs является использование библиотеки времени и обработки дат типа босса. Вы можете легко иметь дело с датами типа / Date (-62135578800000) /. Нет необходимости беспокоиться о том, как дата сериализации в контроллере.

function jsonToDate(date,format) {
   return moment(date).format(format);
}

использовать его как

var formattedDate = jsonToDate(date,'MM/DD/YYYY')

momentjs поддерживает множество форматов времени дат и функции полезности в датах.

699
задан A. Campbell 4 May 2016 в 17:55
поделиться

12 ответов

На самом деле это лучше:

 var code = e.keyCode || e.which;
 if(code == 13) { //Enter keycode
   //Do something
 }
829
ответ дан Wolph 4 May 2016 в 17:55
поделиться

Хорошо, я был слепым:

e.which

будет содержать код ASCII ключа.

См. https://developer.mozilla.org/En/DOM/Event.which

6
ответ дан BlaM 4 May 2016 в 17:55
поделиться

При использовании jQuery UI, у Вас есть переводы для общих кодов клавиши. В ui/ui/ui.core.js:

$.ui.keyCode = { 
    ...
    ENTER: 13, 
    ...
};

существуют также некоторые переводы в tests/simulate/jquery.simulate.js, но я не мог найти никого в базовой библиотеке JS. Следите за Вами, я просто grep'ed источники. Возможно, существует некоторый другой способ избавиться от этих магических чисел.

можно также использовать String.charCodeAt и .fromCharCode:

>>> String.charCodeAt('\r') == 13
true
>>> String.fromCharCode(13) == '\r'
true
61
ответ дан Salman Abbas 4 May 2016 в 17:55
поделиться

Попробуйте это

$('#searchbox input').bind('keypress', function(e) {
    if(e.keyCode==13){
        // Enter pressed... do anything here...
    }
});
130
ответ дан Vladimir Prudnikov 4 May 2016 в 17:55
поделиться
$(document).ready(function(){
    $("#btnSubmit").bind("click",function(){$('#'+'<%=btnUpload.ClientID %>').trigger("click");return false;});
    $("body, input, textarea").keypress(function(e){
        if(e.which==13) $("#btnSubmit").click();
    });
});

Hope это может помочь Вам!!!

14
ответ дан 5 May 2016 в 03:55
поделиться

event.keyCode и event.which удерживаются от использования. См. ответ @Gibolt выше или проверьте документацию: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent

event.key должен использоваться вместо этого

keypress, событие удерживается от использования также: https://developer.mozilla.org/en-US/docs/Web/API/Document/keypress_event

0
ответ дан 22 November 2019 в 21:35
поделиться

Попробуйте следующее:

jQuery('#myInput').keypress(function(e) {
    code = e.keyCode ? e.keyCode : e.which;
    if(code.toString() == 13) {
        alert('You pressed enter!');
    }
});
-9
ответ дан 22 November 2019 в 21:35
поделиться

Вот полное описание поведения различных браузеров http://unixpapa.com/js/key.html

6
ответ дан 22 November 2019 в 21:35
поделиться

Учитывая, что вы используете jQuery, вы обязательно должны использовать .which. Да, разные браузеры устанавливают разные свойства, но jQuery нормализует их и в каждом случае устанавливает значение .which. См. Документацию на http://api.jquery.com/keydown/ , в ней говорится:

Чтобы определить, какая клавиша была нажата, мы можем проверить объект события, который передается в функцию-обработчик. Хотя браузеры используют разные свойства для хранения этой информации, jQuery нормализует свойство .which, чтобы мы могли надежно использовать его для получения кода ключа.

39
ответ дан 22 November 2019 в 21:35
поделиться
 // in jquery source code...
 if (!event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode)) {
     event.which = event.charCode || event.keyCode;
 }

 // So you have just to use
 $('#searchbox input').bind('keypress', function(e) {
     if (e.which === 13) {
         alert('ENTER WAS PRESSED');
     }
 });
27
ответ дан 22 November 2019 в 21:35
поделиться

... этот пример запрещает отправку формы (обычно это основное намерение при захвате нажатия клавиши № 13):

$('input#search').keypress(function(e) {
  if (e.which == '13') {
     e.preventDefault();
     doSomethingWith(this.value);
   }
});
31
ответ дан 22 November 2019 в 21:35
поделиться

Ознакомьтесь с отличным плагином jquery.hotkeys , который поддерживает комбинации клавиш:

$(document).bind('keydown', 'ctrl+c', fn);
21
ответ дан 22 November 2019 в 21:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: