Jquery jqGrid colmodel包含点的索引字符串

Jquery jqGrid colmodel包含点的索引字符串,jquery,jqgrid,Jquery,Jqgrid,我们正在一个项目中升级jQuery和jqGrid,并在jqGrid中发现了一个可能的bug。 我们正在使用的版本: jQuery 1.4.1升级到1.7.1 jqGrid 3.8.2升级至4.2.0 我们使用colmodel的索引参数进行排序和搜索/过滤。我们发现的问题出现在索引字符串包含点时。例如“客户名称” 使用搜索时,浏览器会引发如下异常: Syntax error, unrecognized expression: [name=Customer.Name] http://localh

我们正在一个项目中升级jQuery和jqGrid,并在jqGrid中发现了一个可能的bug。 我们正在使用的版本:

  • jQuery 1.4.1升级到1.7.1
  • jqGrid 3.8.2升级至4.2.0
我们使用colmodel的索引参数进行排序和搜索/过滤。我们发现的问题出现在索引字符串包含点时。例如“客户名称”

使用搜索时,浏览器会引发如下异常:

Syntax error, unrecognized expression: [name=Customer.Name]
http://localhost:8000/Scripts/jquery-1.7.1.js Line 4179
异常源自grid.addons.js中的第465行,如下所示:

447: nm = this.index;
465: v = $("input[name="+nm+"]",self).val();
代码位于一个each操作符中,并从colModel/filterModel获取值,因此
这个
是该数组中的每个元素

经过一些研究,我们发现在jQuery1.5中,属性选择器需要在值周围加引号,网格似乎不使用引号,因此在搜索元素时失败

问题是: 有什么解决方法吗?或者我们应该向jqGrid发布一个bug,并希望他们尽快修复它吗


我们已经尝试过转义点并用引号括住字符串,但没有任何帮助。

模块
grid.addons.js
包含像
filterGrid
这样的方法,这些方法不受更多支持。相反,您可以直接将搜索信息放入
postData
(有关详细信息,请参阅)

如果您想使用
grid.addons.js
中的代码,您必须自己维护代码。要解决当前的问题,您可以使用
$.jgrid.jqID
,它将转义jQuery选择器中使用的任何内容。试着替换

v = $("input[name="+nm+"]",self).val();


我认为它应该可以解决这个问题。

模块
grid.addons.js
包含像
filterGrid
这样的方法,这些方法不太受支持。相反,您可以直接将搜索信息放入
postData
(有关详细信息,请参阅)

如果您想使用
grid.addons.js
中的代码,您必须自己维护代码。要解决当前的问题,您可以使用
$.jgrid.jqID
,它将转义jQuery选择器中使用的任何内容。试着替换

v = $("input[name="+nm+"]",self).val();


我认为它应该解决这个问题。

您应该包含更多的代码来展示如何使用jqGrid。如果您使用
grid.addons.js
,则表示您没有选择标准方式。您可能对从jqGrid中删除的
filterGrid
有问题?还有其他一些简单的方法可以将信息从外部搜索控件发送到服务器(请参见示例)。您是对的……添加了更多的代码并尝试改进了一些解释。您应该包含更多的代码来说明如何使用jqGrid。如果您使用
grid.addons.js
,则表示您没有选择标准方式。您可能对从jqGrid中删除的
filterGrid
有问题?还有其他一些简单的方法可以将信息从外部搜索控件发送到服务器(请参见示例)。您是对的……添加了更多的代码并尝试改进了一些解释。是的,通过添加缺少的引号,这确实以比我自己更干净的方式解决了问题。但是,在中没有很好地解释这一点,我们也没有解释它,因为它不再被维护,只是默认情况下没有包含。@Anttu:您可以看到,
filterGrid
方法不再受支持。是的,这确实比我自己更清楚地解决了问题,添加了缺少的引号。但是,在中没有很好地解释这一点,我们也没有解释它,因为它不再被维护,只是默认情况下没有包含。@Anttu:您可以看到,
filterGrid
方法不再受支持。
v = $("input[name=" + $.jgrid.jqID(nm) + "]", self).val();