我使用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>
答案 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