【问题标题】:jq Grid Search on Enter if Search Box is always visible on page如果搜索框始终在页面上可见,则 jqGrid 在 Enter 上搜索
【发布时间】:2011-09-03 11:15:12
【问题描述】:

这是这个问题的后续Possible to make jqGrid Search Box Stay on Page?

如果搜索框弹出打开然后以正常方式关闭,我找到了在 enter 键上进行网格搜索的说明,但是,如果搜索表单始终是,是否可以让 enter 键触发搜索可见吗?

编辑我们之间的文字,请问我该怎么做?

【问题讨论】:

  • 是的,这是可能的。你没问怎么

标签: javascript search jqgrid


【解决方案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') 来获取网格中所有事件的列表。

【讨论】:

    猜你喜欢
    • 2016-10-04
    • 2011-08-06
    • 1970-01-01
    • 2020-09-22
    • 1970-01-01
    • 2016-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多