JQgrid语法错误,来自custom_value函数的返回值的无法识别的表达式

时间:2014-11-20 06:38:40

标签: jquery jqgrid syntax-error custom-controls ampersand

要查看问题的简单视图,请检查: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进行调试,并在此行中发现错误:

https://github.com/tonytomov/jqGrid/blob/c2ceeced1230ab7e91570c3d9a1400f3e7f0f8ed/js/grid.common.js#L490

有人可以在这方面指导我吗?

由于

1 个答案:

答案 0 :(得分:1)

错误在行

var val = $(value);
custom_element

。你应该删除该行。如果您需要从单元格中获取值,则需要使用$OuterDiv.append($(selectText).val(value));而不是$OuterDiv.append(selectText);,但您应该考虑

此外,我建议您从custom_element中创建的HTML元素中删除所有ID,以确保您永远不会有id重复项。