Выбор варианта с помощью необычного выбора
У меня есть модный выбор с кодом, подобным следующему, но добавив selected=selected
Атрибут одной из опций (с JS) не меняет, какой элемент выбран в данный момент.
<li class="field">
<div class="picker">
<select>
<option value="#" disabled>Favorite Doctor…</option>
<option>Colin Baker</option>
<option>Sylvester McCoy</option>
<option>Paul McGann</option>
<option>Christopher Eccleston</option>
<option>David Tennant</option>
<option>Matt Smith</option>
</select>
</div>
</li>
Как я могу изменить выбранную опцию и отразить это изменение в поле выбора.
3 ответа
Решение
Попробуйте запустить событие изменения после установки выбранного параметра, например:
$('option:eq(2)').prop('selected',true).trigger('change'); // or .change()
Я решил это, исправив код FS. Он использовал :selected
в качестве селектора. Изменил это на [selected="selected"]
и он вел себя. Лучше всего просто избегать FS, хотя, на мой взгляд. Я унаследовал это на проекте, над которым я работаю.
Вокруг строки 56 в моем экземпляре, теперь изменилось на:
triggerHtml = settings.triggerTemplate(sel.find('[selected="selected"]'));
Решил это, установив select.val()
к тексту опции, которую я пытаюсь выбрать.