使用$(下拉)的空白选项文本.在ie9中追加(new Option("Joe Blow", 1, t

Blank Option Text using $(dropdown).append(new Option("Joe Blow", 1, true, true) in IE 9

本文关键字:quot Option new Blow 追加 Joe 下拉 空白 选项 ie9 文本      更新时间:2023-09-26

以下代码在Chrome和Firefox中都能正常工作。在ie9中,选项是追加的,但是Text总是空白的。

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);
            });
        }
    );
}

有没有人看到我做错了什么或有一个解决这个问题的方法?如果这是一个愚蠢的错误,我很抱歉,但我花了几个小时在这一点上,我只是撞到我的头。

这可能与一个影响过去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);

我不知道这是否是你的问题的原因,但最好尝试一下。