Jquery jqGrid搜索运算符未定义

Jquery jqGrid搜索运算符未定义,jquery,json,jqgrid,Jquery,Json,Jqgrid,我正在使用jqGrid的内置搜索功能,并开始在服务器端为执行搜索而运行的查询中发现一些错误。我已经将范围缩小到jqGrid传递给服务器的筛选器参数: { "groupOp":"AND", "rules":[ { "field":"FOO", "op":"ge", "data":"181" }, { "field":"FOO", "op":"undefined"

我正在使用jqGrid的内置搜索功能,并开始在服务器端为执行搜索而运行的查询中发现一些错误。我已经将范围缩小到jqGrid传递给服务器的筛选器参数:

{
   "groupOp":"AND",
   "rules":[
      {
         "field":"FOO",
         "op":"ge",
         "data":"181"
      },
      {
         "field":"FOO",
         "op":"undefined",
         "data":"196"
      }
   ]
}
正如您所看到的,第二个对象中的搜索运算符为“未定义”-这很奇怪,因为在选择搜索运算符时没有空/空选项。以前有人见过这个吗?这是一个已知的问题吗?我根本无法复制它,所以我想知道我的用户是否有什么“特殊”的行为导致了这种情况。我正在用jQuery1.4.2运行JQGrid3.8.2

更新:我能够重现IE7中的错误。向搜索查询添加第二个参数似乎会导致该浏览器中未定义的运算符

更新2:根据发行说明,这似乎应该在jqGrid 3.6中修复:

修复IE7和IE6中的searchFilter不可用 当更多时返回未定义的值 搜索了多个字段


这显然是一个错误。我将在这里结束这个问题。

描述了问题和解决方法。主要问题是。作为解决方法,您应该在页面上包含以下代码

// we use workaround from http://www.trirand.com/blog/?page_id=393/bugs/in-multiple-search-second-and-subsequent-ops-are-sent-as-undefined-in-ie6/
// to fix the bug in the jQuery.clone (see http://bugs.jquery.com/ticket/6793 and
// dscussion on the http://api.jquery.com/clone/
$.event.special.click = {
    setup: function() {
        if ($(this).hasClass("ui-search")) {
            $(this).bind("click", jQuery.event.special.click.handler);
        }
        return false;
    },
    teardown: function() {
        $(this).unbind("click", jQuery.event.special.click.handler);
        return false;
    },
    handler: function(event) {
        //$(".ui-searchFilter td.ops select").attr("name", "op");
        $(".ui-searchFilter td.ops select").filter(function () {
            return $(this).css("display") != "none";
        }).attr("name", "op");
    }
};

目前正在开发新的MultiSelect插件,该插件没有此类问题(请参阅更多信息)。您可以从下载新的测试版。在我最近的文章中,我加入了使用新插件的演示。

Perfect。谢谢你的修复。@Todd Sharp:不客气!修复程序实现了其他人(Jiho Han和mkmeyer)。我只读了关于这个问题的书,自己也使用了修复程序。顺致敬意,