【问题标题】:jQuery jqGrid - select box within grid rowjQuery jqGrid - 网格行内的选择框
【发布时间】:2013-06-24 15:07:13
【问题描述】:

我正在使用 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 灰显且无法选择,但下拉菜单默认为第二行。 select 与我在页面其他位置放置的下拉框中的 HTML 相同(即 Select Message 已禁用,并且在任一位置均未设置为默认值)。

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

【问题讨论】:

    标签: jquery html xml select jqgrid


    【解决方案1】:

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

    我没有注意到原来的下拉框在列表中有黑色 (Firefox) 的 Select Message 并且在下拉列表中是灰色的,而 IE 将它们都显示为灰色。

    【讨论】:

      猜你喜欢
      • 2011-04-03
      • 1970-01-01
      • 2011-06-12
      • 2011-11-06
      • 2012-08-07
      • 1970-01-01
      • 1970-01-01
      • 2011-07-06
      • 1970-01-01
      相关资源
      最近更新 更多