dojo-data-type无效

时间:2013-09-05 08:29:19

标签: javascript html5 dojo dijit.form

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>

2 个答案:

答案 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之前弃用旧代码!!!!

  1. 阅读迁移指南或this tutorial

  2. 在原始代码中

  3. 如果您的道场是1.9(正如您所评论的那样),那么它不会被加载

      

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

    删除.xd!

    添加

    parseOnLoad:    true
    

    到dojoConfig(当然)

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

    require(["dojo/parser","dijit/form/Form", "ETC..."], function(){})