我想单击一下取消选择所有值,而不单独使用每个id
。
我摆弄了一会儿,但这只取消了第一个值。有什么建议吗?
这是我尝试取消选择的方式:
$( "#mybutton" ).click(function() {
$("select").select2('val', '')
});
答案 0 :(得分:42)
$("select").val('').change();
这就是全部:) http://jsfiddle.net/6hZFU/78/
说明:当您更改任何输入的值或通过JavaScript浏览器选择时,不会触发该更改的更改事件(这是规范所说的)。
当您触发更改事件时,select2将赶上并反映select的新值。
答案 1 :(得分:22)
请改为尝试:
$('select').select2({
placeholder: "select me"
});
$("#mybutton").click(function () {
$("select").each(function () { //added a each loop here
$(this).select2('val', '')
});
});
演示here
答案 2 :(得分:14)
如果使用Select2 4.0版,则需要使用新语法:
$("select").val(null).trigger("change");
答案 3 :(得分:1)
$('#destinatariMail').val("-1").trigger("change");
通过这种方式,您将取消选择已插入的标记选项"即时"。
答案 4 :(得分:0)
如果你想使用Select2 v4 api清除多个多选下拉列表,这里有一个简单的方法:
$("li.select2-selection__choice").remove();
$(".select2").each(function() { $(this).val([]); });
不关注下拉列表并清除"选择"和" Select2"元素;)
答案 5 :(得分:0)
我尝试了上述解决方案,但它对我没有用。
这是一种黑客行为,您无需trigger change.
$("select").select2('destroy').val("").select2();
或
$("select").each(function () { //added a each loop here
$(this).select2('destroy').val("").select2();
});
答案 6 :(得分:0)
试试这个,它运作得很好。
$('#form-search-amenities > option').prop("selected", false);
$("li.select2-selection__choice").remove();
#form-search-amenities
应替换为<select>
下拉列表的ID。
答案 7 :(得分:0)
如果有人对Select2本机配置解决方案感兴趣(没有单独的按钮)。
在撰写本文时(select2 v 4),Select2可以添加一个按钮以清除多选。无需使用<option></option>
解决方案即可显示占位符:
$('#my-select').select2({
placeholder: "Select something",
allowClear: true
});
答案 8 :(得分:-1)
您需要使用select( select2_single )
的类示例:
$('#button_clear').click(function ()
{
$('.select2_single').select2('val','');
});
Debes usar la clase de tus select
EJ:
$('#button_clear').click(function ()
{
$('.select2_single').select2('val','');
});