我在我的表单中有select2多选字段,我想在选中后从下拉列表中删除选中的选项,如果从列表中删除,则再次将其添加到列表中。并且添加的项目应该与它们选择的顺序相同。当前的select2(4.0)不会删除选定的项目,并且会按照选定项目在下拉列表中出现的顺序(而不是选择的顺序)显示这些项目。
$(document).ready(function(){
$('#dynamicAttributes').select2({
allowClear: true,
minimumResultsForSearch: -1,
width: 600
});
});
JSF中间文件:https://jsfiddle.net/rd62bhbm/
9条答案
按热度按时间gr8qqesn1#
问题的第1部分:
您可以使用 *CSS技巧 * 隐藏
selected item
,如下所示:问题的第2部分:
您也可以使用 JQuery技巧 * 强制
selected items
到标签框的末尾,(通过在选择时获取选定项,分离它(删除它),然后将它重新附加到标签框,然后调用“change function”应用更改)*:终于更新了JsFiddle,* 我希望它对你有用,谢谢!*
编辑#1
可以通过此调用执行
Clear All Selected
(应用空值):打开按钮:
Updated Fiddle #2
lawou6xi2#
隐藏选定值的另一种方法是,当值标记为选定时,使用下拉模板结果选项
return null
。2guxujil3#
我找到了一种方法,使选定的值不再出现在选择弹出列表中
在文档中,您可以看到Select2事件的事件列表
开放
我利用这些select2事件来隐藏所选的值
下面是javascript::
这是一个DEMO
希望有帮助。
bmvo0sr54#
我的解决方案在第3158行的select2.js(核心版本4.0.3)中进行了修改。添加以下验证:
有了这个验证,我们可以从下拉列表中排除选中的选项。如果你写入选中选项的名称,则会出现选项“noResult”的文本。
下面是完整的代码:
tzdcorbm5#
这使一个错误当单击这删除签名按钮
TypeError:此.占位符未定义
使用
0s7z1bwu6#
从select2多个选定项目中删除(取消选择)项目
第一步:添加'multiple' css类到你的select2元素中以得到你想要的true元素
cs7cruho7#
如果您有更改触发器或取消选择点击使用这个:
否则
如果要完全清空列表,请使用
快乐编码
6yt4nkrj8#
当我选择全部时,其他选择的值将被删除。当我选择全部时,其他选择的值将被删除。
问题图像
第二个问题图像
这就是如何解决问题并100%有效
溶液附件
如果从列表中选择所有标记,则其他标记将被删除。
a11xaf1n9#