Это относится к кодам до версии select2 4
У меня есть простой код для select2
получения данных из ajax
$("#programid").select2({
placeholder: "Select a Program",
allowClear: true,
minimumInputLength: 3,
ajax: {
url: "ajax.php",
dataType: 'json',
quietMillis: 200,
data: function (term, page) {
return {
term: term, //search term
flag: 'selectprogram',
page: page // page number
};
},
results: function (data) {
return {results: data};
}
},
dropdownCssClass: "bigdrop",
escapeMarkup: function (m) { return m; }
});
Этот код работает, однако мне нужно установить для него значение, как в режиме редактирования. Когда пользователь выбирает значение в первый раз, оно будет сохранено, и когда ему нужно отредактировать это значение, оно должно появиться в том же меню выбора ( select2
), чтобы выбрать ранее выбранное значение, но я не могу найти способ.
ОБНОВИТЬ:
Код HTML:
<input type="hidden" name="programid" id="programid" class="width-500 validate[required]">
Программный доступ Select2 с этим не работает.
javascript
php
jquery
ajax
jquery-select2
ClearBoth
источник
источник
$("#programid").val()
Ответы:
Чтобы динамически установить "selected" значение компонента Select2:
Где второй параметр - объект с ожидаемыми значениями.
ОБНОВИТЬ:
Это действительно работает, просто хочу отметить, что в новом select2 «a_key» - это «текст» в стандартном объекте select2. так:
{id: 100, text: 'Lorem Ipsum'}
Пример:
Спасибо @NoobishPro
источник
$('#inputID').val(100).trigger('change')
см. Select2.github.io/…Шаг №1: HTML
Шаг № 2: Создайте экземпляр Select2
Шаг № 3: Установите желаемое значение
Если вы используете select2 без AJAX, вы можете сделать следующее:
Вы также можете сделать это:
Для select2 v4 вы можете напрямую добавить параметр / s следующим образом:
Или с JQuery:
другой пример
источник
HTML:
JavaScript:
jsfiddle
источник
Также, как я пытался, при использовании ajax в select2 методы программного управления для установки новых значений в select2 у меня не работают! Теперь я пишу этот код для решения проблемы:
Вы можете протестировать полный пример кода по этой ссылке: https://jsfiddle.net/NabiKAZ/2g1qq26v/32/
В этом примере кода есть ajax select2, и вы можете установить новое значение с помощью кнопки.
Показать фрагмент кода
источник
Попробуйте это дополнение, затем выберите. Не дублирует опцию при вызове AJAX.
источник
Мне это понравилось-
источник
В текущей версии
select2
-v4.0.1
вы можете установить значение так:источник
destroy
повторно вызвать плагин и снова вызвать его. См. Обновленный код.so that I wouldn't have to duplicate them
Зачем их дублировать? Когда вы все еще там со всеми его .destroy
select
options
$example.select2({ ... this ... })
Для Ajax используйте
$(".select2").val("").trigger("change")
. Это должно решить проблему.источник
Я думаю тебе нужна
initSelection
функцияисточник
HTML
JS
источник: https://select2.github.io/options.html
источник
В Select2 V.4
использовать
$('selector').select2().val(value_to_select).trigger('change');
Я думаю это должно работать
источник
Установите значение и немедленно активируйте событие изменения.
источник
Я решил свою проблему с помощью этого простого кода. Где #select_location_id - это идентификатор поля выбора, а значение - это значение параметра, указанного в поле выбора2.
источник
Ответ Фана сработал для меня:
Но добавление изменения вызывает событие
источник
вы можете использовать этот код:
где 2 в "number: 2" и 3 в "number: 3" - это поле идентификатора в массиве объектов.
источник
Иногда
select2()
сначала загружается, и из-за этого элемент управления не отображает правильно ранее выбранное значение. Задержка на несколько секунд может решить эту проблему.источник
Правильнее подать заявку
select2
после выбора одного из текущих вариантов.источник
Я сделал что-то вроде этого, чтобы предустановить элементы в раскрывающемся списке select2 ajax
источник
Вам следует использовать:
источник
Если вы используете поле ввода, вы должны установить для свойства «множественный» значение «истина». Например,
источник
В
select2 < version4
нем есть опцияinitSelection()
удаленной загрузки данных, с помощью которой можно установить начальное значение для ввода, как в режиме редактирования.Исходная документация: Select2 - 3.5.3
источник
Просто чтобы добавить к любому, кто, возможно, придумал ту же проблему со мной.
Я пытался установить выбранный вариант моих динамически загружаемых параметров (из AJAX) и пытался установить один из вариантов как выбранный в зависимости от некоторой логики.
Моя проблема возникла из-за того, что я не пытался установить выбранный параметр на основе идентификатора, который должен соответствовать значению, а не значению, соответствующему имени!
источник
Для нескольких значений примерно так:
что будет переводиться примерно так
источник
Это может помочь кому-то загрузить данные select2 из AJAX при загрузке данных для редактирования ( применимо для одиночного или множественного выбора ):
Во время загрузки моей формы / модели:
Позвоните, чтобы выбрать данные для Select2:
и если у вас могут возникнуть проблемы с кодировкой, вы можете изменить их по своему усмотрению:
источник
если вы получаете свои значения из ajax, перед вызовом
подтвердите, что вызов ajax завершен, используя функцию jquery, когда
источник
Чтобы построить поверх ответа @tomloprod. По нечетной вероятности, что вы используете x-editable , имеете поле select2 (v4) и несколько элементов, которые вам нужно предварительно выбрать. Вы можете использовать следующий фрагмент кода:
и вот оно в действии:
Я думаю, это сработает, даже если вы не используете x-editable. Надеюсь, что это могло кому-то помочь.
источник
Вы можете использовать этот код:
Введите желаемое значение вместо Your_value
Надеюсь, это сработает :)
источник
Легко и приятно:
И вы переходите
id_city
к идентификатору вашего выбора.Изменить: после комментария Глена я понимаю, что должен объяснить, почему и как это сработало для меня:
Я сделал
select2
работу действительно приятной для моей формы. Единственное, что у меня не получалось, так это показывать текущее выбранное значение при редактировании. Он искал сторонний API, сохранял новые и редактировал старые записи. Через некоторое время я понял, что мне не нужно правильно устанавливать значение, только метку внутри поля, потому что, если пользователь не изменит поле, ничего не произойдет. После поиска и изучения множества людей, у которых возникли проблемы с этим, я решил сделать это на чистом Javascript. Это сработало, и я написал, чтобы, возможно, кому-то помочь. Я также предлагаю установить для этого таймер.источник