我在向导对话框中有两组dojo.form.Multiselect框。他们可以在他们之间传输项目,例如:Testing Multiselect from Widget。我在表单上也有一个复选框,当用户点击它时,我需要:
invsertSelection选项不起作用,因为如果在单击该复选框时选择了任何项目,则仅选择并移动未选择的项目。我没有在API中看到这样做的方法,也没有在codesphere中找到可靠的方法。有什么建议吗?
答案 0 :(得分:4)
通过查看Dojo Docs和其他代码找出解决方案:
var selectItem1 = dijit.byId('firstSelectBox');
// Deselect all and invert to Select all
selectItem1.set("value",[]);
selectItem1.invertSelection();
//Move items to right box
var selectItem2 = dijit.byId('secondSelectBox');
selectItem2.addSelected(selectItem1);
答案 1 :(得分:0)
基本上,addSelected对select执行dom查询,以查看哪些选项被标记为已选择:
query("option",this.containerNode).filter(function(n){
return n.selected; // Boolean
});
所以你基本上可以选择一切:
query("option", myMultiSelect.containerNode).forEach(function(n){
n.selected = true; // Boolean
});
然后使用addSelected ... somethign就是这样做的。