<input type="text" name="date" value="" dojoType="dijit.form.DateTextBox" required="true" />
我想避免使用dojoType有两个原因:
parseonload使其“跳转”onload(你看到系统默认的输入字段有一段时间onload)
它没有验证HTML
那么替代方案呢?
答案 0 :(得分:8)
您的问题有几种不同的方法:
使用程序化创建dijit小部件。您可以通过javascript以编程方式创建和放置小部件,而不是在元素上指定dojoType。在dojo参考文档中,您会注意到大多数组件都有声明性示例和编程示例(例如,dijit.form.Select)。程序化样式允许您避免将dijit组件直接放在html标记中。
此外,Dojo 1.6提供了一种在声明性组件上放置属性的新方式。您可以使用data-dojo-type,而不是指定dojoType。有关此新功能的更多信息,请参见here。
您可以通过两种方式解决parseOnLoad问题。一种方法是隐藏页面内容,直到解析完成。 dijit theme tester执行此操作。您会注意到,当您加载页面时,您最初会看到有关页面加载的消息,然后完全填充的页面将会淡入。
答案 1 :(得分:6)
要拥有有效的HTML,从Dojo 1.6开始,您可以使用data-dojo-XXX
属性而不是dojoXXX
属性。 HTML5规范保留了&#34;数据 - &#34;这种用户定义属性的前缀。