Я хочу иметь возможность установить значение по умолчанию/выбранное значение элемента select с помощью плагина JQuery Select2.
JQuery select2 установить значение по умолчанию из опции в списке?
Ответ 1
Еще один способ - просто добавьте атрибут selected = "selected"
к разметке select
и вызовите select2
на нем. Он должен принять выбранное вами значение. Нет необходимости в дополнительном JavaScript. Вот так:
Разметка
<select class="select2">
<option id="foo">Some Text</option>
<option id="bar" selected="selected">Other Text</option>
</select>
JavaScript
$('select').select2(); //oh yes just this!
Смотрите скрипту: http://jsfiddle.net/6hZFU/
Изменить: (спасибо, Джей Хаазе!)
Если это не сработает, попробуйте установить для свойства val
значение select2
на null
, чтобы очистить значение, например:
$('select').select2("val", null); //a lil' bit more :)
После этого достаточно просто установить val
в "Whatever You Want"
.
Ответ 2
Один из способов добиться этого - <... >
$('select').select2().select2('val', $('.select2 option:eq(1)').val());
Итак, сначала вы сначала инициализируете плагин, затем указываете значение по умолчанию, используя параметр "val". Фактическое значение берется из указанной опции, в этом случае №1. Таким образом, выбранное значение из этого примера будет "bar".
<select class=".select2">
<option id="foo">Some Text</option>
<option id="bar">Other Text</option>
</select>
Надеюсь, это полезно кому-то другому.
Ответ 3
$("#id").select2("val", null); //this will not work..you can try
На самом деле вы должны сделать это... intialise, а затем установить значение. Ну, это также так, как это сработало для меня.
$("#id").select2().select2("val", null);
$("#id").select2().select2("val", 'oneofthevaluehere');
Ответ 4
Вышеуказанные решения не сработали, но этот код с собственного сайта Select2 сработал:
$('select').val('US'); // Select the option with a value of 'US'
$('select').trigger('change'); // Notify any JS components that the value changed
Надеюсь, это поможет любому, кто борется, как я.
Ответ 5
Для 4.x версии
$('#select2Id').val(__INDEX__).trigger('change');
чтобы выбрать значение с INDEX
$('#select2Id').val('').trigger('change');
чтобы выбрать ничего (показать, если это место),
Ответ 6
Пришли из будущего? Ищете исходное значение AJAX по умолчанию?
// Set up the Select2 control
$('#mySelect2').select2({
ajax: {
url: '/api/students'
}
});
// Fetch the preselected item, and add to the control
var studentSelect = $('#mySelect2');
$.ajax({
type: 'GET',
url: '/api/students/s/' + studentId
}).then(function (data) {
// create the option and append to Select2
var option = new Option(data.full_name, data.id, true, true);
studentSelect.append(option).trigger('change');
// manually trigger the 'select2:select' event
studentSelect.trigger({
type: 'select2:select',
params: {
data: data
}
});
});
Не за что.
Ответ 7
Не знаю, проблема других, только этот код работал для меня.
$('select').val('').select2();
Ответ 8
Для ajax select2 multiple select dropdown я сделал это:
//preset element values
//topics is an array of format [{"id":"","text":""}, .....]
$(id).val(topics);
setTimeout(function(){
ajaxTopicDropdown(id,
2,location.origin+"/api for gettings topics/",
"Pick a topic", true, 5);
},1);
// ajaxtopicDropdown is dry fucntion to get topics for diffrent element and url
Ответ 9
$('select').select2("val",null);
Ответ 10
Если вы используете источник данных массива, вы можете сделать что-то вроде ниже -
$(".select").select2({
data: data_names
});
data_names.forEach(function(name) {
if (name.selected) {
$(".select").select2('val', name.id);
}
});
Это предполагает, что из вашего набора данных один элемент, который вы хотите установить по умолчанию, имеет дополнительный атрибут, называемый выбранным, и мы используем его для установки значения.