Для версии select2> = 4.0.0
Другие решения могут не работать, однако следующие примеры должны работать.
Решение 1. Вызывает запуск всех подключенных событий изменения, включая select2.
$('select').val('1').trigger('change');
Решение 2. Вызывает запуск события JUST select2
$('select').val('1').trigger('change.select2');
Посмотрите этот jsfiddle для примеров этого. Спасибо @minlare за решение 2.
Объяснение:
Скажем, у меня есть лучший друг с именами людей. Итак, Боб, Билл и Джон (в этом примере я предполагаю, что значение совпадает с именем). Сначала я инициализирую select2 на моем select:
$('#my-best-friend').select2();
Теперь я вручную выбираю Боба в браузере. Затем Боб делает что-то непослушное, и он мне больше не нравится. Таким образом, система отменяет выбор Боба для меня:
$('#my-best-friend').val('').trigger('change');
Или, скажем, я заставляю систему выбирать следующего в списке вместо Боба:
// I have assume you can write code to select the next guy in the list
$('#my-best-friend').val('Bill').trigger('change');
Примечания к веб-сайту Select 2 (см. Устаревшие и удаленные методы ), которые могут быть полезны для других:
.select2 ('val')
Метод "val" устарел и будет удален в Select2 4.1. Устаревший метод больше не включает параметр triggerChange.
Вместо этого вы должны напрямую вызвать .val для базового элемента. Если вам нужен второй параметр (triggerChange), вам также следует вызвать .trigger ("change") для элемента.
$('select').val('1').trigger('change'); // instead of $('select').select2('val', '1');
change
событию не привязаны никакие пользовательские действия (например, перезагрузка формы). В противном случае эти действия будут вызваны избыточно при срабатыванииchange()
.onChange
Глядя на документы select2, вы используете ниже, чтобы получить / установить значение.
@PanPipes указал, что это изменилось для 4.x (иди и подбрось ему голос ниже).
val
теперь вызывается напрямую$("#select").val("CA");
Таким образом, в пределах
loadComplete
jqGrid вы можете получить любое значение, которое вы ищете, а затем установить значение selectbox.Уведомление из документов
источник
val
вызов.<select>
преобразован вselect2
элемент управления, проверяя существование классаselect2-offscreen
на<select>
. Все элементы панели инструментов поиска имеют идентификатор, который начинается сgs_
префикса и имеет имя как вcolModel
. Вы можете использовать,getGridParam
чтобы получитьcolModel
.select2
select. Сегодня я еще раз посмотрю, может, со свежими глазами, я могу это исправить. Еще раз спасибо. Обновление: завершение кода в булевой проверке устранило проблему, с которой я столкнулся, хотя он перестал обновлять панель поиска, а не снова выбирал предыдущий элемент.это должно помочь
источник
Это должно быть еще проще.
Но убедитесь, что значения, которые вы передаете, уже присутствуют в HTMl
источник
Если вы хотите добавить новый
value='newValue'
иtext='newLabel'
, вы должны добавить этот код:Добавить новую опцию к
<select>
:Триггер
<select>
изменения на выбранное значение:источник
Просто хотел добавить второй ответ. Если вы уже представили select как select2 , вам нужно будет отразить это в вашем селекторе следующим образом:
источник
У вас есть два варианта - как говорится в ответе @PanPipes, вы можете сделать следующее.
Это приемлемое решение, только если нет никаких пользовательских действий, связанных с событием изменения. Решение, которое я использую в этой ситуации, состоит в том, чтобы вызвать конкретное событие select2, которое обновляет отображаемый выбор select2.
источник
Возникли проблемы с настройкой параметра String, выбранного в select2:
С опцией: «опция string1 / option» используется:
НО с опцией со значением: значение опции "E" строка1 / опция:
Надеется, что это поможет кому-то бороться с той же проблемой.
источник
если вы хотите выбрать одно значение, используйте
$('#select').val(1).change()
если вы хотите выбрать несколько значений, то установите значение в массиве, чтобы вы могли использовать этот код
$('#select').val([1,2,3]).change()
источник
Для V4 Select2, если вы хотите изменить как значение select2, так и текстовое представление раскрывающегося списка.
Это позволит установить не только значение за кулисами, но и текстовое отображение для select2.
Извлечено из https://select2.github.io/announcements-4.0.html#removed-methods
источник
Мой ожидаемый код:
работает отлично, спасибо @PanPipes за полезную.
источник
сделай это
источник
Если у вас есть источник данных AJAX, пожалуйста, обратитесь к этому для ошибок
https://select2.org/programmatic-control/add-select-clear-items
// Настройка элемента управления Select2
// Выбрать предварительно выбранный элемент и добавить в элемент управления
источник
если вы хотите установить выбранный элемент, когда вы знаете текст из выпадающего списка и не знаете значение, вот пример:
Скажем, вы выяснили часовой пояс и хотите его установить, но
time_zone_id
в них есть значения .источник
Шрифт: выберите 2 документации
источник
Вы можете просто использовать метод get / set для установки значения
или вы можете сделать это:
источник