Проблема с выпадающим меню в IE9, IE10. Выбранный вариант не отображается в раскрывающемся списке

У меня есть раскрывающийся список на моей веб-странице. Это просмотренная коллекция словарного значения. Здесь я добавил значение One Option в верхней части раскрывающегося списка с включенным выбранным параметром с помощью J-запроса. Поскольку новый параметр, добавленный с помощью [j-запроса], был выбран в раскрывающемся списке после рендеринга страницы, кроме браузера IE9, IE10.

Пожалуйста, найдите пример кода.

код коллекции:

Dictionary<string,string> PlatformList=new Dictionary<string,string>();
PlatformList.Add("asp","ASP.NET")
PlatformList.Add("aspnetmvc","ASP.NET MVC")
PlatformList.Add("wpf","WPF")
PlatformList.Add("silverlight","Silverlight")

Вот теперь привязал коллекцию с выпадающим списком.

View.cshtml

  @Html.DropDownList("platform", new SelectList(PlatformList, "Key", "Value"))

Теперь я добавил новую опцию в раскрывающийся список с включенной выбранной опцией с помощью Jquery.

$(document).ready(function(){
  $('#platform').prepend("<option  value='all'>All</option>");
        $("#platform").find('option:first').attr('selected', 'selected'); 

});

После рендеринга страницы вновь добавленный вариант «Все» на выборочном этапе в раскрывающемся списке. Это работает в IE7, IE8, Mozilla, Chrome.

Но в IE9, IE10 опция «Все» не отображается в раскрывающемся списке U. Но она находится в верхней части списка с выбранным, но скрывает статус. Опция просмотра в раскрывающемся списке была рядом с опцией «Все».

<option val="all" selected="selected">All</option>==> not viewed in IE9,IE10
<option val="asp">ASP.NET</option>----> this is viewed in IE9,IE10 in case the above issue.

пожалуйста, предложите, может ли это поддерживать IE9, IE10. если это так, пожалуйста, обновите решение.


person Anandh    schedule 30.07.2013    source источник
comment
Попробуйте использовать .prop('selected', true);   -  person tymeJV    schedule 30.07.2013
comment
Привет, это не работает .. но спасибо за ваш комментарий.   -  person Anandh    schedule 30.07.2013


Ответы (2)


Попробуй это:

$(document).ready(function(){
    $('#platform').prepend("<option  value='all'>All</option>");
    $("#platform option:selected").removeAttr('selected');
    $("#platform option:first").attr('selected', 'selected'); 
});

Ваш код не удаляет атрибут selected из исходного значения по умолчанию, и несколько параметров с этим атрибутом могут конфликтовать.

person Barmar    schedule 30.07.2013
comment
Привет Бармар, Спасибо за ваш ответ и предложение. это отличная работа. - person Anandh; 31.07.2013

Ручное изменение индекса тоже должно работать:

$( "#platform" )[ 0 ].selectedIndex = 0;
person fnagel    schedule 26.11.2013