要查看问题的简单视图,请检查:http://jsfiddle.net/9bmrjnwe/2/(生成错误:单击任何行进行编辑。然后单击备用行,然后单击返回先前编辑的行。将弹出错误。
由于
我是JQuery的新手。在编辑模式下,我的网页上有一个包含自定义控件的JQgrid。这个自定义控件基本上是一个带有select2的“html选择”。这是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();
}
},
现在一切正常,直到我点击该列中所选文本包含&符号(&amp;)的行,并弹出错误信息:“语法错误,无法识别的表达式:ABC&amp; XYZ”其中“ABC&amp; XYZ”是我选择的文字。我尝试通过Chrome进行调试,并在此行中发现错误:
有人可以在这方面指导我吗?
由于
答案 0 :(得分:1)
错误在行
中var val = $(value);
custom_element
的。你应该删除该行。如果您需要从单元格中获取值,则需要使用$OuterDiv.append($(selectText).val(value));
而不是$OuterDiv.append(selectText);
,但您应该考虑
此外,我建议您从custom_element
中创建的HTML元素中删除所有ID,以确保您永远不会有id重复项。