这是此问题的后续问题Possible to make jqGrid Search Box Stay on Page?
我找到了在输入键上进行网格搜索的方向,如果搜索框被弹出然后以正常方式关闭,但是,如果搜索表单总是如此,是否可以使输入键触发搜索可见?
编辑我们之间的文字,请问我该怎么做呢?
答案 0 :(得分:1)
你有可能。我想你仍然使用jqGrid 3.8.2。所以我会在答案中使用该版本。
您可以在the answer中找到解决方案的主要思路。为了更加小心,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();
}
});
}
这种方式适用于高级搜索对话框(请参阅the demo)以及始终位于网格上的对话框(请参阅another demo)。
更新:从jQuery 1.8开始,应该使用$._data($('.vdata',$form)[0], 'events');
代替$('.vdata',$form).data('events')
来获取网格中所有事件的列表。