Checkbox 使用Dojo以编程方式设置选中的复选框

Checkbox 使用Dojo以编程方式设置选中的复选框,checkbox,dojo,Checkbox,Dojo,下面的代码返回未捕获的TypeError:无法将属性“checked”设置为null。 将复选框设置为选中状态的正确方法是什么 array.forEach(this._getAllCheckBoxIDs(), function(item){ dom.byId(item).checked = true; }, this); 好的,如果您有dojo复选框的集合,那么我建议您使用registry.byId而不是dojo.byId,因为您需要复选

下面的代码返回未捕获的TypeError:无法将属性“checked”设置为null。 将复选框设置为选中状态的正确方法是什么

        array.forEach(this._getAllCheckBoxIDs(), function(item){
            dom.byId(item).checked = true;
        }, this);

好的,如果您有dojo复选框的集合,那么我建议您使用
registry.byId
而不是
dojo.byId
,因为您需要复选框dojo小部件及其domNode来更新其属性

dojo类名:-

dijit/registry
Ex:-

// require registry class first
array.forEach(this._getAllCheckBoxIDs(), function(item){
     registry.byId(item).set("checked", true);
}, this);
欲知详情


希望这能对您有所帮助:)

以下示例显示了一个编程示例,说明如何为小部件
复选框
设置属性
checked

脚本使用与查询DOM相反的
dijit/registry
获取复选框的引用

而不是像这样直接为小部件设置属性:

dom.byId(item).checked = true;
我建议使用如下setter:

widgetReference.set('checked', true);
这将允许小部件生命周期正常工作

现场示例如下:



选项0

选择1

这是正确的,但是
dom.byId(item)
返回
null
,所以我打赌
这是正确的。\u getAllCheckBoxId()
不会返回您期望的结果。。。有了JSFIDLE,我们可以提供更好的帮助。请分享_getAllCheckBoxIDs()函数的内容!感谢您的回复。结果表明,在调用_GetAllCheckBoxId()时没有创建复选框。请确保“this._GetAllCheckBoxId()”仅包含dojo复选框的id。。如果上述解决方案不起作用,请随意提问……为了使用dijit小部件的适当生命周期,我建议使用widget.set('checked',true);是的。。胡言乱语。。(y)
require(["dijit/form/CheckBox", "dijit/registry", "dijit/form/Button", "dojo/domReady!"], function(CheckBox, registry, Button) {
  new CheckBox({
    id: "checkBox0",
    name: "checkBox0",
    value: "option0",
    checked: false,
    onChange: function(event) {

    }
  }, "checkBox0").startup();
  new CheckBox({
    id: "checkBox1",
    name: "checkBox1",
    value: "option1",
    checked: false,
    onChange: function(event) {

    }
  }, "checkBox1").startup();

  var markCheckAll = function() {
    registry.toArray().forEach(function(widget) {
      if (widget.type === 'checkbox'){
        widget.set('checked', true);
      }
    });
  };
  markCheckAll();

});
<input id="checkBox0" />
<label for="checkBox">Option 0</label>
<br>
<input id="checkBox1" />
<label for="checkBox">Option 1</label>
<br>