我有一个以编程方式创建的CheckedMultiSelect.
new dojox.form.CheckedMultiSelect({
id: 'products',
name: 'products',
multiple: true,
readOnly: false,
store: store,
},'products').startup();
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.MultiSelect已创建.现在,我使用multiselect打开网页,选中一些复选框并使用Chrome控制台:
var productSelect = dijit.byId("products");
productSelect.get('value');
[4, 3]
Run Code Online (Sandbox Code Playgroud)
[4,3]是一个检查值的数组.
我的下一步是取消选中之前选中的复选框并再次使用Chrome控制台:
productSelect.set('value', [4, 3]);
Run Code Online (Sandbox Code Playgroud)
这就是问题发生的地方.函数'set'无效.盒子没有被选中.
我甚至试过了
productSelect.set('value', ['4', '3']);
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
好的,我在这里找到了答案.
但是,dijit.form.Select具有一个重要的限制:它的实现方式使得它不能很好地处理非字符串项标识.特别是,通过select.set("value",id)以编程方式设置窗口小部件的当前值将不适用于非字符串(例如数字)标识.
解决方案是将存储中的ID转换为字符串并使用
productSelect.set('value', ['4', '3']);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3848 次 |
| 最近记录: |