Как можно открыть раскрывающийся список с помощью триггера?
Вот код, который не работает:
$('select').trigger('click');
Просто для заметки - mousedown и mouseup также не работают.
Как можно открыть раскрывающийся список с помощью триггера?
Вот код, который не работает:
$('select').trigger('click');
Просто для заметки - mousedown и mouseup также не работают.
$('select').children('option').each(function() {
if ($(this).is(':selected'))
{ $(this).trigger('change'); }
});
То, чего вы пытаетесь достичь, невозможно. Даже если вы вызываете click, раскрывающийся список не открывается, как если бы пользователь нажал на него. Если вы хотите изменить текущее выбранное значение новым, вы можете использовать функцию val. Я думаю, единственное решение - имитировать весь внешний вид пользовательского интерфейса элемента select
с помощью div.
Взял меня немного, но нашел решение:
(только для Chrome и Safari)
function open(elem) {
if (document.createEvent) {
var e = document.createEvent("MouseEvents");
e.initMouseEvent("mousedown", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
elem[0].dispatchEvent(e);
} else if (element.fireEvent) {
elem[0].fireEvent("onmousedown");
}
}
Нет подходящего способа щелкнуть по выпадающему меню программно.
Вы можете выбрать опцию через:
$('#sourceOptions>option:eq(0)').prop('selected', 'selected');
Если вы хотите имитировать пользовательский клик: вы должны сделать это, как @Renso говорит:
$('#sourceOptions>option:eq(0)').prop('selected', 'selected').trigger('change');
Вы можете сделать следующее:
HTML:
<form>
<select>
<option value="opt1">Option 1</option>
<option value="opt2">Option 2</option>
<option value="opt3">Option 3</option>
</select>
<input type="submit" value="OK"></input>
</form>
Javascript (с jquery):
$("option[value='opt2']").attr("selected", "selected"); // Selects option 2
$("input[type='submit']").trigger("click"); // Submits the form