无法读取属性'设置'在dojo中未定义的

时间:2016-09-01 14:59:20

标签: javascript events dojo dijit.form

我使用set属性根据复选框点击启用和禁用按钮..同时编译得到这样的错误。 "无法读取属性'设置'未定义" 任何人都可以提前帮助。谢谢。

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>

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

首先要调用parser.parse()(创建和渲染dijits)

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

在您的情况下,如果选中(未选中)复选框,则需要启用(禁用)按钮,因此,您必须在复选框dijit上使用change事件

请注意,现代道场在其html attrib中使用data-dojo-* [{1}} ... dojoType or dojoEvent [type,event,id]。

这是一个可以帮助你的小提琴:Fiddle