Подтвердить что ты не робот

Триггер щелчка в поле выбора не работает в jQuery

Как можно открыть раскрывающийся список с помощью триггера?

Вот код, который не работает:

$('select').trigger('click');

Просто для заметки - mousedown и mouseup также не работают.

4b9b3361

Ответ 1

        $('select').children('option').each(function() {
            if ($(this).is(':selected'))
            { $(this).trigger('change');  }
        });

Ответ 2

То, чего вы пытаетесь достичь, невозможно. Даже если вы вызываете click, раскрывающийся список не открывается, как если бы пользователь нажал на него. Если вы хотите изменить текущее выбранное значение новым, вы можете использовать функцию val. Я думаю, единственное решение - имитировать весь внешний вид пользовательского интерфейса элемента select с помощью div.

Ответ 3

Взял меня немного, но нашел решение:

(только для 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");
    }
}

http://jsfiddle.net/oscarj24/GR9jU/

Ответ 4

Нет подходящего способа щелкнуть по выпадающему меню программно.

Вы можете выбрать опцию через:

$('#sourceOptions>option:eq(0)').prop('selected', 'selected');

Если вы хотите имитировать пользовательский клик: вы должны сделать это, как @Renso говорит:

$('#sourceOptions>option:eq(0)').prop('selected', 'selected').trigger('change');

Ответ 5

Вы можете сделать следующее:

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