Как открыть Chosen через JavaScript?

Мне нужно открыть Выбранное раскрывающееся меню через JavaScript, чтобы пользователям не приходилось нажимать на кнопку выбора, чтобы показать ее, как это можно сделать

Ответы

Ответ 1

Это решает проблему,

просто убедитесь, что chzn-select - это идентификатор вашего выбора.

chzn-drop останется открытым после того, как пользователи нажмут на опцию:

        $('#chzn-select').change(function(event)
        {
            $('.chzn-drop').css('left', 0);
        });

Ответ 2

Вы можете открыть выбранный блок выбора через JS, выполнив:

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

где <id-of-your-select> - это идентификатор вашего элемента <select>.

Для примера: если ваш элемент <select> похож на <select id="foo" ...>, то приведенный выше код станет:

$('#foo_chzn').trigger('mousedown');

Ответ 3

Это очень странно, но я нахожу, что ответ использует таймаут

это как-то сначала на тайм-аут возможно, потому что мой элемент клонирован надежды для других

setTimeout(function(){ firstElement.trigger("chosen:open"); }, 100);

Ответ 4

вы можете добавить следующие два строчки в свой код, чтобы сохранить выбранный вами файл всегда открытым. Это сработало для меня.

list_start - ваш идентификатор выбранного элемента.

("#list_start").trigger('chosen:open');
$('.chosen-drop').css('left', 0);

Ответ 5

Ответ на

@tzvi является ценным в том случае, если вы пытаетесь вызвать выбранный так, чтобы он оставался открытым после выбора (IE: создание нескольких выборов за один раз). Позвольте мне немного расширить (обновлено для выбранного 1.0, кстати):

$('#selectbox').change(function() {
  $('#selectbox_chosen .chosen-drop').css('left', '0');
});

$('html').click(function() {
  $('#selectbox_chosen .chosen-drop').css('left', '');
});

$('#selectbox_chosen .chosen-drop').click(function(e) {
  e.stopPropagation();
});

По сути, он заставляет выбранное выпадающее меню оставаться открытым, переопределяя некоторый css, который обычно находится на месте "активным" классом. Затем у нас есть несколько событий щелчка, которые отменит это, если вы щелкните в любом месте вне раскрывающегося списка. Работала отлично для меня.

Изменить: Кстати, если вы действительно хотите запустить спуск через JS, используйте Chosen 1.0 API:

$('#selectbox').trigger('chosen:open')

В контексте исходного вопроса это позволит вам открыть окно или открыть окно после выбора. Тем не менее, он не будет открывать окно после выбора (без закрытия на мгновение).

Ответ 6

В обновленном Chosen jquery plugin работает отлично с stopPropagation.

$("#selectbox").trigger("chosen:open");			
event.stopPropagation();