如何启用在jqgrid高级搜索窗口中输入 [英] how to enable enter in jqgrid advanced search window

查看:268
本文介绍了如何启用在jqgrid高级搜索窗口中输入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在jqgrid工具栏中按搜索按钮可打开高级搜索窗口. 按下回车键不会开始搜索.要开始搜索,需要单击搜索按钮.

Pressing search button in jqgrid toolbar opens advanced search window. Pressing enter key does not start seach. To start search, search button needs to be clicked.

如何允许按Enter键开始搜索,就像单击搜索按钮一样?

How to allow enter key press to start search like in clicking in search button ?

推荐答案

要在 Enter 键上执行搜索,必须实现对keydown事件的绑定到任何输入字段并强制在输入.如果包含jQuery UI jquery-ui.min.js,则可以使用$.ui.keyCode.ENTER代替13,以提高代码的可读性.

To implement search on Enter key one have to implement binding to keydown event to any input fields and force searching on Enter. If you include jQuery UI jquery-ui.min.js then you can use $.ui.keyCode.ENTER instead of 13 for the better readability of the code.

代码可以像

$.extend($.jgrid.search, {
    // ... some other default which you use
    afterRedraw: function (p) {
        var $form = $(this), formId = this.id, // fbox_list
            bindKeydown = function () {
                $form.find("td.data>.input-elm").keydown(function (e) {
                    if (e.which === $.ui.keyCode.ENTER) {
                        $(e.target).change();
                        $("#" + $.jgrid.jqID(formId) + "_search").click();
                    }
                });
            },
            oldOnChange = p.onChange,
            myOnChange = function (param) {
                var $input = $form.find("td.data>.input-elm"), events;
                oldOnChange.call(this, param);
                if ($input.length > 0) {
                    events = $._data($input[0], "events");
                    if (events && !events.keydown) {
                        bindKeydown();
                    }
                }
            };
        p.onChange = myOnChange;
        bindKeydown.call(this);
    }
});

演示实时演示代码.

这篇关于如何启用在jqgrid高级搜索窗口中输入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆