Jquery jqGrid搜索运算符未定义
我正在使用jqGrid的内置搜索功能,并开始在服务器端为执行搜索而运行的查询中发现一些错误。我已经将范围缩小到jqGrid传递给服务器的筛选器参数:Jquery jqGrid搜索运算符未定义,jquery,json,jqgrid,Jquery,Json,Jqgrid,我正在使用jqGrid的内置搜索功能,并开始在服务器端为执行搜索而运行的查询中发现一些错误。我已经将范围缩小到jqGrid传递给服务器的筛选器参数: { "groupOp":"AND", "rules":[ { "field":"FOO", "op":"ge", "data":"181" }, { "field":"FOO", "op":"undefined"
{
"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)。我只读了关于这个问题的书,自己也使用了修复程序。顺致敬意,