在IE 9中使用$(下拉).append(新选项(“Joe Blow”,1,true,true)的空白选项文本

时间:2011-09-05 05:05:14

标签: javascript jquery asp.net-mvc-3

以下代码可在Chrome和Firefox中正常运行。在IE 9中附加了选项,但文本始终为空白。

function populateDeveloperDropDownViaSkillProfileSpecificAjaxcall(dropdown, selectedProfileId, selectedDeveloperId) 
{
    $(dropdown).prepend("<option value=''></option>");
    $.getJSON(ajaxActionToGetFilteredDeveloperList, { skillProfileId: selectedProfileId, "selectedDeveloperId": selectedDeveloperId },
        function (data) {
            var opt;
            //Returns a List of ASP.NET MVC SelectListItem serialized to JSON
            $.each(data, function (k, v) {
                if (v != undefined && v.Selected == true) {
                    opt = new Option(v.Text, v.Value, true, true);
                }
                else {
                    opt = new Option(v.Text, v.Value);
                }
                $(dropdown).append(opt);
            });

        }
    );
}

有人看到我做错了或者为此做了解决方法吗?如果这是一个愚蠢的错误,请道歉,但我已经花了几个小时,我只是在这一点上敲我的脑袋。

1 个答案:

答案 0 :(得分:2)

这可能与影响过去IE版本的奇怪问题有关;要克服它,我会尝试强制IE在附加后更新选项文本:

if (v != undefined && v.Selected == true) {
    opt = new Option(v.Text, v.Value, true, true);
}
else {
    opt = new Option(v.Text, v.Value);
}

$(dropdown).append(opt);
$(opt).text(v.Text);

我不知道这是否是您问题的原因,但最好还是尝试。