我想使用JQuery Select2插件来设置下拉框(select元素)的默认/选定值。
我想使用JQuery Select2插件来设置下拉框(select元素)的默认/选定值。
另外一种方法 - 只需在 select
标记中添加 selected="selected"
属性,并在其上调用 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/
编辑:(感谢Jay Haase!)
如果无效,请尝试将select2
的val
属性设置为null
,以清除值,像这样:
$('select').select2("val", null); //a lil' bit more :)
接下来,将val
设置为"Whatever You Want"
就足够简单了。
上述解决方案对我无效,但 Select2 官网上的这段代码有效:
$('select').val('US'); // Select the option with a value of 'US'
$('select').trigger('change'); // Notify any JS components that the value changed
希望这对像我一样苦苦挣扎的人有所帮助。
$('select').val('US').trigger('change');
,甚至更短的方式是 $('select').val('US').change();
。 - random_user_name$("#id").select2("val", null); //this will not work..you can try
你实际上应该这样做......初始化并设置值......这也是对我有效的方法。
$("#id").select2().select2("val", null);
$("#id").select2().select2("val", 'oneofthevaluehere');
达到这个目标的方法之一是...
$('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>
希望对其他人有所帮助。
.
的类。因此,基本上,你的代码不会设置该值,因为你选择了错误的元素。 - krishwader对于4.x版本
$('#select2Id').val(__INDEX__).trigger('change');
使用 INDEX 选择数值
$('#select2Id').val('').trigger('change');
选择不选中任何选项(如果有占位符则显示占位符)
// 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
}
});
});
不用谢。
Select2
相关的问题,插件本身没有问题,但为什么需要创建一个新的API来预先选择数据呢?应该有一种方法来触发AJAX查询以获取下拉列表并预先选择给定的值。 - Bosco步骤1:您需要在选择标签中添加一个值为空白的空白option
。
步骤2:在选择标签中添加data-placeholder
属性,并设置占位符的值。
HTML
<select class="select2" data-placeholder='--Select--'>
<option value=''>--Select--</option>
<option value='1'>Option 1</option>
<option value='2'>Option 2</option>
<option value='3'>Option 3</option>
</select>
jQuery
$('.select2').select2({
placeholder: $(this).data('placeholder')
});
或者
$('.select2').select2({
placeholder: 'Custom placeholder text'
});
例如
var option = new Option(data.full_name, data.id, true, true);
studentSelect.append(option).trigger('change');
你可以在这里查看 https://select2.org/programmatic-control/add-select-clear-items
很容易。例如我想在默认情况下选择值为2的选项:
HTML:
<select class="select2" id="selectBox">
<option value="1">Some Text</option>
<option value="2">Other Text</option>
</select>
Javascript:
$("#selectBox").val('2').trigger('change')
<select id="role" name="role[]" multiple="multiple" class="js-example-basic-multiple form-control">
{% for x in list%}
<option selected="selected" value="{{x[0]}}">{{x[1]}}</option>
{% endfor %}
</select>
JQuery:
$(document).ready(function() {
$('.js-example-basic-multiple').select2();
});
$(".js-example-theme-multiple").select2({
theme: "classic",
placeholder: 'Select your option...'
});
config.data
数据源(而不是将所有内容输出为“选项”)的人,请参考下面的答案:这个回答 是可行的 :) - random_user_name