我正在使用jquery multiselect小部件。我想取消选中所有这些都是手动检查的。我有一个示例代码 JSFiddle--> Code
这不起作用。当手动选择选择选项时,在选择它时检查未选中的选项是否为第一次给我1(在最后一个选项中单击)。所以我检查$this.children("option").not('[selected]').length
是否为1和ui.checked
并调用uncheckAll
但在那之后它的代码表现得很好
如果$this.children("option").not('[selected]').length
在选择最后一个时给我0。
我想知道发生了什么。
答案 0 :(得分:13)
那么这就是您想要的解决方案...查看 documentation ,方法getChecked
获取selected options
。你的工作没有用,因为插件会重新格式化选择元素。
$('.multi').multiselect({
click: function(e, ui){
if($(this).multiselect("getChecked").length
== $('select.multi > option').length){
$(this).multiselect("uncheckAll");
}
}
});
答案 1 :(得分:9)
$("#multiselectelement").multiselect("uncheckAll");