为了简单地查看问题,请检查:http://jsfiddle.net/9bmrjnwe/2/(生成错误:单击任何行进行编辑。然后单击替代行,然后单击上一个已编辑的行。将 pop 错误。
谢谢
我是JQuery的新手。在编辑模式下,我的网页上有一个包含自定义控件的JQgrid。此自定义控件基本上是带有select2的“html select”。这是JQgrid列的相关代码:
editoptions: {
custom_element: function (value, options) {
var val = $(value);
var output = [];
output.push("<select id = 'JQGridSelectCol1' width=900>");
output.push('<option value= 101> ABC & XYZ </option>');
output.push('<option value= 102> ABC XYZ </option>');
output.push("</select>");
var selectText = output.join('');
$OuterDiv = $("<div id='SelectDivCol1'></div>");
$OuterDiv.append(selectText);
$select = $OuterDiv.children("#JQGridSelectCol1");
var value2 = $("#vEntries").jqGrid('getCell', lastSel, 'Code');
$select.val(value2);
return $OuterDiv;
},
custom_value: function myvalue(elem, operation, value) {
if (operation === 'get') {
return $(elem).find(":selected").text();
}
},
现在,一切正常,直到我单击该列中所选行中包含与号(&)的行,然后 pop 错误并显示以下消息:“语法错误,无法识别的表达式:ABC&XYZ”,其中“ABC&XYZ”是我选择的。我尝试通过Chrome进行调试,并在此行发现错误:
https://github.com/tonytomov/jqGrid/blob/c2ceeced1230ab7e91570c3d9a1400f3e7f0f8ed/js/grid.common.js#L490
有人可以在这方面指导我吗?
谢谢
最佳答案
错误在行
var val = $(value);
的
custom_element
。您应该删除该行。如果您需要从单元格获取值,则需要使用类似$OuterDiv.append($(selectText).val(value));
而不是$OuterDiv.append(selectText);
的方法,但是您应该考虑到此外,我建议您从
custom_element
中创建的HTML元素中删除所有ID,以确保您永远不会有ID重复。
关于jquery - JQgrid语法错误,custom_value函数的返回值无法识别的表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27033303/