Измените выбор в режиме множественного выбора с помощью функции в плагине jQuery

#javascript #jquery #multi-select

Вопрос:

Я использую плагин jQuery для создания демонстрационной версии Github с несколькими вариантами выбора. Теперь я хотел бы искусственно изменить выбор выпадающего меню из другой функции. Итак, у меня есть вот что:

HTML-часть:

 <select id="Fruits" name="Fruits" multiple="" style="display: none;">
    <option value="1">Number1</option>
    <option value="2">Number2</option>
    <option value="3">Number3</option>
</select>
 

Затем я использую этот код для инициализации меню:

 $(function(){
   $('#Fruits').multiSelect({'noneText':'Select Fruits'});
});
 

В результате получается:

Меню Фрукты

Теперь я хотел бы выбрать определенную опцию, запустив другую функцию:

Меню Фрукты Выбрана опция 1

Поскольку я на самом деле не знаком с jQuery, мне трудно понять исходный код плагина. До сих пор я пробовал такие вещи, как это:

 $("#Fruits").data("plugin_multiSelect").updateButtonContents()
 

или

 $("#Fruits").data("plugin_multiSelect").$element.on('change.multiselect')
 

Кажется, я немного заблудился.

Комментарии:

1. .$element.on('change.multiselect') инициируется ли событие при выборе материала

2. @mplungjan Спасибо вам! Вот почему я попробовал. Он просто зовет _this.updateButtonContents() . Я думаю, что мне нужно каким-то образом вставить поле параметров, которое я хочу выбрать, в «_ это»?

3. Я просто вижу, что updateButtonContents() ищу «избранного» if $(this).is(':selected')) {selected.push( $.trim(text) );} Как я могу пометить запись как выбранную?

4. Я бы выбрал другой плагин или спросил автора github.com/mysociety/jquery-multi-select/issues — в демонстрационном коде даже нет примера

Ответ №1:

Я только что выяснил синтаксис для изменения состояния выбора при множественном выборе. Это было бы:

 $('#Fruits').val(["0","4"]);
$("#Fruits").data("plugin_multiSelect").updateMenuItems();
 

Таким образом, будут выбраны 1-й и 5-й элементы раскрывающегося списка «Фрукты».