dojoType替代方案

ice*_*eea 2 javascript css xhtml dojo

<input type="text" name="date" value="" dojoType="dijit.form.DateTextBox" required="true" />
Run Code Online (Sandbox Code Playgroud)

我想避免使用dojoType有两个原因:

  • parseonload使它"跳转"onload(你看到系统默认的输入字段有一段时间onload)

  • 它没有验证HTML

那么另类呢?

Buf*_*alo 8

您的问题有几种不同的方法:

使用程序化创建dijit小部件.您可以通过javascript以编程方式创建和放置小部件,而不是在元素上指定dojoType.在dojo参考文档中,您会注意到大多数组件都有声明性示例和编程示例(例如,dijit.form.Select).程序化样式允许您避免将dijit组件直接放在html标记中.

此外,Dojo 1.6提供了一种在声明性组件上放置属性的新方式.您可以使用data-dojo-type,而不是指定dojoType.有关此新功能的更多信息,请访问此处.

您可以通过几种方式解决parseOnLoad问题.一种方法是隐藏页面内容,直到解析完成.该dijit主题匹配测试这一点.您会注意到,当您加载页面时,您最初会看到有关页面加载的消息,然后完全填充的页面将淡入.


hug*_*omg 6

要拥有有效的HTML,从Dojo 1.6开始,您可以使用data-dojo-XXX属性而不是属性dojoXXX.HTML5规范为这种用户定义的属性保留了"data-"前缀.

http://dojotoolkit.org/features/1.6/html5data-attributes