javascript - 如何以编程方式设置 dojox.form.CheckedMultiSelect 的值?

标签 javascript dojo

我有一个以编程方式创建的 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/

相关文章:

javascript - 从表行获取控件 ID

javascript - Ruby on Rails 应用本地主机互联网连接

javascript - 新待办事项已创建但未显示 - 带有 EmberJS 且不带 ember-data 的待办事项应用程序

perl - PostgreSQL、perl 和 dojo 特殊字符问题(æ、ø 和 å)

dojo.io.iframe.send 不会在 dojo 1.8 中第二次发送请求

javascript - 如何使用ajax从循环数据数组发送参数

javascript - 部署到 gh-pages 时找不到 Bundle.js

javascript - onChange 不足以触发 Dojo Combobox 的查询

python-3.x - 使用 Selenium Python 选择 DojoComboBox 的值

Javascript正则表达式匹配由空格分隔符分隔的单词