0

伙计们无法在 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>
4

2 回答 2

0

框架的答案是 dojo 1.6 之前已弃用的遗留代码!

  1. 阅读迁移指南或本教程

  2. 在原始代码中

如果您的道场是 1.9(如您评论的那样),则未加载

在 Dojo 1.7 之前,跨域 Dojo 加载器脚本被命名为 dojo.xd.js

删除 .xd !

添加

parseOnLoad:    true

到dojoConfig(可以肯定)

并将您的 dojo.require 语法更改为正确的语法(参见教程):

require(["dojo/parser","dijit/form/Form", "ETC..."], function(){})
于 2014-03-04T18:44:50.257 回答
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

于 2013-09-05T12:10:48.260 回答