无法读取 dojo 中未定义的 属性 'set'

Cannot read property 'set' of undefined in dojo

我正在使用集 属性 来启用和禁用基于复选框单击的按钮。在编译时出现这样的错误。 "Cannot read property 'set' of undefined"谁能提前help.thanks

JS:

if(dojo.byId('pickLstValChkbox').checked === false){
    dijit.byId('isK9Acccepted').set('disabled', true)
}
else{
    dijit.byId('isK9Acccepted').set('disabled', false)
}

HTML:

<input type="CHECKBOX" name="" dojoType='dijit.form.CheckBox' id="pickLstValChkbox" value="CONFIRM_CHECKED">
<button class="defaultButton" dojoType="dijit.form.Button" id="isK9Acccepted">Accept</button>

当您在解析前尝试访问 dijit 控件时,会出现此问题。在做任何事情之前使用 dojo.parser.parse();。更多详细信息可以在这里找到。 https://dojotoolkit.org/reference-guide/1.6/dojo/parser.html

另外,您使用的是哪个版本的 dojo?看起来您正在使用传统的编码方式。我建议你迁移到 AMD 风格。

第一件事是调用 parser.parse()(创建和呈现 dijits)

然后要访问您的 dijit,您必须使用 dojo/ready 以确保加载和呈现所有 dijit's

在您的情况下,您希望在选中(未选中)复选框时启用(禁用)按钮,因此,您必须在复选框 dijit

上使用 change 事件

请注意,现代 dojo 在其 html 属性中使用 data-dojo-* [type, event, id ]insted of dojoType or dojoEvent ...

这里有一个 fiddle 可以帮到你:Fiddle