Ты это возможно. Я полагаю, что вы все еще используете jqGrid 3.8.2. Поэтому я буду использовать версию в своем ответе.
Основная идея решения вы можете найти в ответе . Чтобы быть более осторожным, код beforeShowSearch
должен быть немного расширен:
beforeShowSearch: function($form) {
// because beforeShowSearch will be called on all open Search Dialog,
// but the old dialog can be only hidden and not destroyed
// we test whether we already bound the 'keydown' event
var events = $('.vdata',$form).data('events'), event;
for (event in events) {
if (events.hasOwnProperty(event) && event === 'keydown') {
return;
}
}
$('.vdata',$form).keydown( function( e ) {
var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
if (e.which == 13) { // save
//$(".ui-search", $form).click();
grid[0].SearchFilter.search();
}
});
}
Способ работает в диалоговом окне расширенного поиска (см. демо ) и в диалоговом окне, которое всегда находится над сеткой (см. другое демо ).
ОБНОВЛЕНО : Начиная с jQuery 1.8 следует использовать $._data($('.vdata',$form)[0], 'events');
вместо $('.vdata',$form).data('events')
, чтобы получить список всех событий сетки.