Guys无法在HTML5代码中使用dijit小部件。
它使用遗留代码dojoType
完全正常工作。 HTML5代码有什么问题?
<!DOCTYPE >
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="js/dijit/themes/tundra/tundra.css">
<script type="text/javascript" src="js/dojo/dojo.xd.js" data-dojo-config="async: true"></script>
<script type="text/javascript">
dojo.require("dojo.parser");
dojo.require("dijit.form.Form");
dojo.require("dijit.form.Button");
dojo.require("dijit.form.ValidationTextBox");
dojo.require("dijit.form.DateTextBox");
</script>
</head>
<body class="tundra">
<table style="border: 1px solid black;">
<tr>
<td>Name:</td>
<td><input type="text" id="name" name="name"
data-dojo-type="dijit.form.ValidationTextBox" /></td>
</tr>
<tr>
<td>Date of birth:</td>
<td><input type="text" id="dob" name="dob"
data-dojo-type="dijit.form.DateTextBox" /></td>
</tr>
</table>
<input type="button" name="submitButton" value="Submit" />
</body>
</html>
答案 0 :(得分:0)
从Dojo 1.8开始,解析器接受该类型的模块ID(MID)。 以前它接受了对象的声明的类名。它也是 接受在全局范围内声明的任何内容
所以
<input type="text" id="name" name="name"
data-dojo-type="dijit.form.ValidationTextBox" />
应该是
<input type="text" id="name" name="name"
data-dojo-type="dijit/form/ValidationTextBox" />
http://dojotoolkit.org/reference-guide/1.9/dojo/parser.html#id8
答案 1 :(得分:0)
框架答案是在dojo 1.6之前弃用旧代码!!!!
阅读迁移指南或this tutorial
在原始代码中
如果您的道场是1.9(正如您所评论的那样),那么它不会被加载
在Dojo 1.7 之前,跨域Dojo加载器脚本名为dojo.xd.js
添加
parseOnLoad: true
到dojoConfig(当然)
并将您的dojo.require语法更改为正确的语法(请参阅教程):
require(["dojo/parser","dijit/form/Form", "ETC..."], function(){})