我有一个以编程方式创建的 CheckedMultiSelect。
new dojox.form.CheckedMultiSelect({
id: 'products',
name: 'products',
multiple: true,
readOnly: false,
store: store,
},'products').startup();
到目前为止一切顺利。多重选择已创建。现在,我使用多选打开网页,选中一些复选框并使用 Chrome 控制台:
var productSelect = dijit.byId("products");
productSelect.get('value');
[4, 3]
[4, 3] 是检查值的数组。
我的下一步是取消选中之前选中的复选框并再次使用 Chrome 控制台:
productSelect.set('value', [4, 3]);
这就是出现问题的地方。 “设置”功能不起作用。未选择框。
我什至尝试过
productSelect.set('value', ['4', '3']);
有什么想法吗?
最佳答案
好的,我找到了答案 here 。
However, dijit.form.Select possesses an important limitation: it is implemented in such a way that it does not handle non-string item identities well. Particularly, setting the current value of the widget programmatically via select.set("value", id) will not work with non-string (e.g. numeric) identities.
解决方案是将 store 中的 id 转换为字符串并使用
productSelect.set('value', ['4', '3']);
关于javascript - 如何以编程方式设置 dojox.form.CheckedMultiSelect 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14789680/