jQuery jqGrid - 在网格行中选择框

时间:2013-06-24 15:07:14

标签: jquery html xml select jqgrid

我正在使用jqGrid 4.5.2&我正在使用自定义格式化程序根据其他(隐藏)单元格的值在jqGrid行的单元格中构建一个下拉框。

下拉框的选择是从查询结果构建到SQL表的。另外,我还在它前面加了一行作为教学信息。下拉列表构建如下:

function getMsgs() {
    $.ajax({
        type: "GET",
        url: myUrl,
        dataType: "xml",
        success: function(data) {
                var select = $("#msglist");
                var selectline = $("<option value='0'>Select Message</option>");
                    select.prepend(selectline);
                    $(data).find("Row").each(function() {
                var ctid = $(this).find("CannedTextID").text();
                var dtext = $(this).find("DisplayText").text();
                var option = $("<option>" + dtext + "</option>");
                option.prop("value", ctid);
                   select.append(option);
                });
        // make the instructional message unselectable
        $("#msglist option[value='0']").attr("disabled", "disabled");
        }
    });

    msgSelect = $("#msglist").select();
}

将结果放入页面和表格中。 HTML如下:

<form class="Messages" action="">
<select id="msglist" class="choices" name="msglist">
<option value="0" disabled="disabled">Select Message</option>
<option value="7"> Message2</option>
<option value="8"> Message3</option>
<option value="9"> Message4</option>
<option value="10"> Message5</option>
<option value="11"> Message6</option>
<option value="12"> Message7</option>
<option value="13">Intermittent problems</option>
<option value="14">Local Network Connectivity issue</option>
<option value="15">Message15</option>
</select>
</form>

在函数结束时,我设置了一个全局变量msgSelect = $("#msglist").select();

在格式化程序中,在符合下拉列表的条件下,我返回:

return msgSelect[0].outerHTML;

这会显示jqGrid中的下拉框,但不会显示第一行= Select Message作为初始下拉框,而是显示Message2。在jqGrid行中,Select Message显示为灰色&amp;无法选择,但下拉列表默认为第二行。 select与我在页面上其他位置的下拉框中的HTML相同(即Select Message已禁用,并且未在任何位置设置为默认值)。

为什么jqGrid自定义格式化程序以不同方式显示HTML,即使代码完全相同?

1 个答案:

答案 0 :(得分:0)

没关系。问题在于使用IE vs Firefox。 IE默认选择它,而如果我想让Firefox做同样的事情,我必须设置属性selected

我没有注意到原始下拉框中列表中的Select Message为黑色(Firefox),下拉列表中为灰色,而IE则两者都显示为灰色。