Лучшим способом обработки дат в knockoutjs является использование библиотеки времени и обработки дат типа босса. Вы можете легко иметь дело с датами типа / Date (-62135578800000) /. Нет необходимости беспокоиться о том, как дата сериализации в контроллере.
function jsonToDate(date,format) {
return moment(date).format(format);
}
использовать его как
var formattedDate = jsonToDate(date,'MM/DD/YYYY')
momentjs поддерживает множество форматов времени дат и функции полезности в датах.
На самом деле это лучше:
var code = e.keyCode || e.which;
if(code == 13) { //Enter keycode
//Do something
}
Хорошо, я был слепым:
e.which
будет содержать код ASCII ключа.
При использовании 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
Попробуйте это
$('#searchbox input').bind('keypress', function(e) {
if(e.keyCode==13){
// Enter pressed... do anything here...
}
});
$(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 это может помочь Вам!!!
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
Попробуйте следующее:
jQuery('#myInput').keypress(function(e) {
code = e.keyCode ? e.keyCode : e.which;
if(code.toString() == 13) {
alert('You pressed enter!');
}
});
Вот полное описание поведения различных браузеров http://unixpapa.com/js/key.html
Учитывая, что вы используете jQuery, вы обязательно должны использовать .which. Да, разные браузеры устанавливают разные свойства, но jQuery нормализует их и в каждом случае устанавливает значение .which. См. Документацию на http://api.jquery.com/keydown/ , в ней говорится:
Чтобы определить, какая клавиша была нажата, мы можем проверить объект события, который передается в функцию-обработчик. Хотя браузеры используют разные свойства для хранения этой информации, jQuery нормализует свойство .which, чтобы мы могли надежно использовать его для получения кода ключа.
// 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');
}
});
... этот пример запрещает отправку формы (обычно это основное намерение при захвате нажатия клавиши № 13):
$('input#search').keypress(function(e) {
if (e.which == '13') {
e.preventDefault();
doSomethingWith(this.value);
}
});
Ознакомьтесь с отличным плагином jquery.hotkeys , который поддерживает комбинации клавиш:
$(document).bind('keydown', 'ctrl+c', fn);