<label for="date1">Drop down Date box:</label>
<input type="text" name="date1" id="date1" value="2005-12-30"
data-dojo-type="dijit/form/DateTextBox"
required="true" />
会发生什么:第三条语句对我不起作用,我得到的结果是一个简单的文本框。需要什么:我想获得大量的日期文本框。其中 x 是从数据库中检索的。
<label for="date1">Drop down Date box:</label>
<input type="text" name="date1" id="date1" value="2005-12-30"
data-dojo-type="dijit/form/DateTextBox"
required="true" />
会发生什么:第三条语句对我不起作用,我得到的结果是一个简单的文本框。需要什么:我想获得大量的日期文本框。其中 x 是从数据库中检索的。
您混合了旧的 dojo 声明性语法和较新的 html5 兼容语法。“data-”片段用于较新的 html5 语法。
正如 OammieR 所指出的,您也不要在声明中使用“/”,它应该是“.”。例如,请参见下文。
<input id="date1" data-dojo-type="dijit.form.DateTextBox"
data-dojo-props="required:true,name:'date1',value:'2005-12-30'" />
If you use the new version(AMD). When require you have to use xxx/xxx/xxxx
but in data-dojo-type
you have to use xxx.xxx.xxx
instead.
试试下面的
<input type="text"
placeholder="Date of Birth"
name="date"
dojoType="dijit.form.DateTextBox"
required="true"
>
我面临同样的问题并得到这个解决方案。在声明性中使用 AMD 语法之前,您必须需要用于创建小部件的模块,例如:-
在您的情况下,首先您必须需要小部件
require(["dojo/parser","dijit/form/DateTextBox"],function(parser,DateTextBox)
{
parser.parse();
});
当您创建小部件声明时,您还必须解析您的代码。
在 HTML 中:-
<label for="date1">Drop down Date box:</label>
<input type="text" name="date1" id="date1" value="2005-12-30"
data-dojo-type="dijit/form/DateTextBox"
required="true" />
现在您可以免费使用 xxx/xxx/xxxx 或 xxx.xxx.xxxx。我希望这能帮到您...
好吧,如果您使用的是 dojo AMD,那么下面是动态添加 dijit DateTextBox 的代码。
require(["dijit/form/DateTextBox", "dojo/dom-construct", "dojo/domReady!"],function(DateTextBox, domConstruct)
{
var parentNode = domConstruct.create("div", { "class": "container" }, mainContainer); // place this container in your main conatainer.
var Date = new DateTextBox({
name="date1",
id="date1",
value="2005-12-30"
}, parentNode);
});
注意:如果您是在循环中创建它或一次创建多个日期纠察队,请注意id,因为 id 应该是唯一的并且不应重复。
希望对你有帮助 :)