Выбранный вариант выбора платформы jQuery из раскрывающегося списка с помощью Javascript

Я использую платформу Chosen jQuery с базовым оператором выбора.

Я использую следующую строку кода, чтобы открыть раскрывающийся список:

$('#<id-of-your-select>_chzn').trigger('mousedown');

Этот оператор открывает раскрывающийся список «Выбрано».

Выбранный раскрывающийся список

Затем я хочу выбрать верхний элемент, который является элементом li с идентификатором: pt_chzn_o_1.

Я пробовал следующее, но ни один из них не выберет этот вариант.

$('#pt_chzn_o_1').trigger('mousedown');
$('#pt_chzn_o_1').click();

Как выбрать параметр с помощью Javascript/jQuery, как если бы я щелкнул верхний параметр мышью.


person anataliocs    schedule 31.03.2014    source источник


Ответы (2)


Почему бы вам просто не изменить выбранный индекс? Похоже, вы пытаетесь добиться того же, но делаете это «человеческим способом», а не «программным путем», например:

$('#<id-of-your-select>').val('value-of-pt_chzn_o_1').trigger('chosen:updated');

Обязательно измените как селектор jQuery, так и значение, чтобы они соответствовали вашим обстоятельствам.

person Nate Kibler    schedule 31.03.2014
comment
#‹id-of-your-select›_chzn на самом деле является ‹div›, а не ‹select›. Выпадающий список состоит из элементов ‹li› в элементе ‹ul›. Я пытаюсь сделать это по-человечески, потому что это для автоматического тестирования, и я хочу точно отразить пользовательский поток. - person anataliocs; 01.04.2014
comment
Попался, вы можете добавить свой HTML к исходному сообщению? У меня сложилось впечатление, что это элемент select. - person Nate Kibler; 01.04.2014
comment
Выбранный фреймворк работает следующим образом: вы берете элемент select, затем Chosen создает div и скрывает исходный элемент select. Скрытый элемент выбора обновляется за кулисами через платформу Chosen. - person anataliocs; 01.04.2014
comment
Попробуйте мой отредактированный код. Функция .chosen() должна захватить базовый элемент select, и вы сможете работать с ним, как обычно. - person Nate Kibler; 01.04.2014
comment
Это возвращает мне следующую ошибку: TypeError: Cannot read property 'length' of undefined - person anataliocs; 01.04.2014
comment
Хорошо, еще раз! Попробуйте обновленный код сейчас. Вы должны иметь возможность обновить базовый элемент выбора напрямую, а затем уведомить Chosen, что вы изменили то, что выбрано. Убедитесь, что селектор является идентификатором элемента select, а не выбранного div. - person Nate Kibler; 01.04.2014

Вот что в итоге сработало для меня:

Первоначальный щелчок запускает событие для отображения дополнительных полей (необязательно, требуется только в моем конкретном случае).

$("#<id-of-your-select>_chzn").trigger("click")

Этот оператор открывает раскрывающийся список «Выбрано»:

$("#<id-of-your-select>_chzn").trigger("mousedown")

Выполните этот оператор для идентификатора элемента li выбранного выпадающего элемента, который вы хотите выбрать.

$("#pt_chzn_o_1").trigger("mouseup")
person anataliocs    schedule 31.03.2014