我想一键取消选择所有值,而不需要单独使用每个
id
。
我摆弄了一段时间,但这仅取消选择第一个值。有什么建议吗?
这就是我尝试取消选择的方式:
$( "#mybutton" ).click(function() {
$("select").select2('val', '')
});
$("select").val('').change();
仅此而已:) http://jsfiddle.net/6hZFU/78/
说明:当您更改任何输入的值或通过 JavaScript 浏览器进行选择时,不会触发该更改的更改事件(规范是这么说的)。
当您触发更改事件时,select2 将赶上并反映 select 的新值。
试试这个:
$('select').select2({
placeholder: "select me"
});
$("#mybutton").click(function () {
$("select").each(function () { //added a each loop here
$(this).select2('val', '')
});
});
演示这里
如果使用 Select2 版本 4.0,您将需要使用新语法:
$("select").val(null).trigger("change");
如果有人对 Select2 本机配置解决方案感兴趣(没有单独的按钮)。
截至撰写本文时(select2 v 4),Select2 可以添加一个按钮来清除多选。不需要
<option></option>
解决方法即可显示占位符:
$('#my-select').select2({
placeholder: "Select something",
allowClear: true
});
来自文档。
$('#destinatariMail').val("-1").trigger("change");
这样您还将取消选择已“即时”插入的标记选项。
我尝试了上述解决方案,但它对我不起作用。
这是一种 hack,你不必这样做
trigger change.
$("select").select2('destroy').val("").select2();
或
$("select").each(function () { //added a each loop here
$(this).select2('destroy').val("").select2();
});
如果您想使用 Select2 v4 api 清除多个多选下拉列表,这里有一个简单的方法:
$("li.select2-selection__choice").remove();
$(".select2").each(function() { $(this).val([]); });
不关注下拉菜单并清理“select”和“Select2”元素;)
您需要使用您的 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','');
});
试试这个,效果很好。
$('#form-search-amenities > option').prop("selected", false);
$("li.select2-selection__choice").remove();
#form-search-amenities
应替换为您的 <select>
下拉列表的 ID。
试试这个
$('#mySelect2').val('');
$('#mySelect2').trigger('change.select2');