2015-02-02 7 views
1

Я рассмотрел все ответы, связанные с этим, но все еще не могу понять. Пожалуйста помоги. У меня есть код JQuery, как показано ниже:Выберите опцию, не динамически установленную на IE9

$('#DDPrimaryServiceLine').find('option:contains("' + rowData['Primary_Service_Line'] + '")').attr("selected", true); 

rowData генерируется из БД через AJAX вызова. Также изначально выбор пуст, он становится динамически заполненным во время выполнения. По умолчанию у него есть null как выбранный.

При запуске выпадающее меню по умолчанию выбрано null в IE9, хотя оно отлично работает в Google Chrome.

Просьба предложить. (Я пробовал писать

$("#DDPrimaryServiceLine option:selected").removeAttr('selected'); 

тоже в моем коде. Но не работает)

+0

Вы должны установить 'val()' 'select' и не выбирать' option'. Также используйте 'prop()', а не 'attr()' для изменения свойств типа 'selected'. –

+0

Вау! Я пытался с val тоже как $ ('# DDPrimaryServiceLine'). Find ("option [value = '" + rowData [' Primary_Service_Line '] + "']"). Attr («selected», true); но он не работал. Изменение attr() на prop() работает сексуально: D – user3814961

ответ

0

комментарий как ответ:

Вы должны быть установив val() в select и не выбирая option, однако, если вы хотите, чтобы изменить выбранное свойство в option, используйте prop() и не attr(). Это устанавливает правильные внутренние значения (и вызывает изменения выбора триггеров) и не просто изменяет атрибуты отображения.

например.

$('#DDPrimaryServiceLine').find('option:contains("' + rowData['Primary_Service_Line'] + '")').prop("selected", true); 

prop имеет дополнительное преимущество в том, что возвращаемые значения не являются просто строки, и это будет правильно возвращать true и falseбулевы значения, если атрибут является «истинным» или «ложь».

0

ли решение здесь помочь Best way to unselect a <select> in jQuery?

с использованием .prop ("выбрано", ложь) вместо .removeAttr()?

+0

Извините, мой вопрос состоял в том, чтобы установить значение или удалить его. – user3814961

+0

В последней части вашего вопроса говорится: «Пожалуйста, предложите. (Я пробовал писать $ (« # DDPrimaryServiceLine option: selected »). RemoveAttr ('selected'); тоже в моем коде. Но не работает)« – TonyS

+0

Да, потому что на некоторых сайтах, которые они упомянули, удалите предыдущие выбранные значения перед установкой. Так я и пытался. – user3814961

0

Мне нужно также посмотреть ваш html-код, чтобы узнать, где может быть ошибка. Проверить эту ссылку: ie9 select default value

+0

Это должен быть комментарий. –

+0

если бы я мог комментировать другие, У меня пока нет репутации;) – DonutMan

Смежные вопросы