Столбец jqgrid содержит jqueryUI DataPicker, используемый в режиме встроенного редактирования.Если элемент ввода DataPicker имеет фокус и нажата клавиша Ctrl + S или какая-либо другая клавиша, body_onkeydown не выполняется: IE9 вызывает поведение по умолчанию ctrl + s (диалог сохранения).В FireFox body_onkeydown также не выполняется.
Как исправить этот код, чтобы ключи могли быть перехвачены, если у DatePicker есть фокус?
DatePicker определяется как:
$(elem).datepicker({
dateFormat: 'dd.mm.yy',
autoSize: true,
showOn: 'button',
changeYear: true,
changeMonth: true,
showButtonPanel: true,
showWeek: true
});
Используемый кодпоймать Ctrl + S нажатие клавиши:
$(function () {
$("html").keydown(body_onkeydown);
});
function body_onkeydown(evt) {
// Why this function is not executed if datepicker has focus?
if (evt.ctrlKey) {
switch (evt.keyCode) {
case 83: $("#grid_savebutton").click(); break;
}
cancel(evt);
return false;
}
function cancel(evt) {
evt.returnValue = false;
evt.keyCode = 0;
evt.cancelBubble = true;
evt.preventDefault();
evt.stopPropagation();
}