动态渲染dojo复选框

时间:2013-12-31 09:43:53

标签: javascript checkbox dojo

为什么使用javascript创建并使用dojo.place()放置在DOM树中的复选框呈现为input[type="text"]而不是input[type="checkbox"]元素?

生成的HTML代码:

<input id="baseCalcRoundCustomized" 
name="hierarchicalRounding.baseCalcRoundCustomized" 
value="0" dojoType="dijit.form.CheckBox" class="pcheckbox" 
onchange="checkValue(this.id)" unchecked />

1 个答案:

答案 0 :(得分:1)

当您动态添加DOM节点时,它们将不会转换为Dojo小部件(dijit)。要成为这样的小部件(dijit),需要解析DOM节点。如果您将Web应用程序设置为使用parseOnLoad,它将在加载网页时自动解析HTML页面,这就是为什么以这种方式添加的窗口小部件将正常工作。

有两种选择:

第一个是使用dojo/parser模块自己解析新添加的DOM节点。您可以使用parse()函数再次解析页面,但您也可以指定应该解析的DOM节点。有关此模块的更多信息,请访问API docsreference guide

另一种方式(我推荐这个)是通过以编程方式添加小部件而不是仅添加DOM节点并解析它。您可以在reference guide了解更多相关信息。