我有一个以编程方式创建的CheckedMultiSelect。
new dojox.form.CheckedMultiSelect({
id: 'products',
name: 'products',
multiple: true,
readOnly: false,
store: store,
},'products').startup();
到目前为止一切顺利。 MultiSelect已创建。现在,我使用multiselect打开网页,选中一些复选框并使用Chrome控制台:
var productSelect = dijit.byId("products");
productSelect.get('value');
[4, 3]
[4,3]是一个检查值数组。
我的下一步是取消选中之前选中的复选框并再次使用Chrome控制台:
productSelect.set('value', [4, 3]);
这是问题发生的地方。函数'set'无效。箱子没有被选中。
我甚至尝试过
productSelect.set('value', ['4', '3']);
有什么想法吗?
答案 0 :(得分:5)
好的,我找到了答案here。
但是,dijit.form.Select有一个重要的限制:它是 以这样的方式实现它不处理非字符串项 身份很好。特别是,设置小部件的当前值 以编程方式通过select.set(“value”,id)将无法使用 非字符串(例如数字)身份。
解决方案是将存储中的ID转换为字符串并使用
productSelect.set('value', ['4', '3']);