如何添加动态创建的DOJO DateTextBox

时间:2016-07-24 23:42:05

标签: dojo dijit.form

我正在努力动态创建dijit.form.DateTextBox,然后将其添加到现有文档中。我尝试了几件事,首先是通过new dijit.form.DateTextBox动态创建字段,然后通过domConstruct添加字段。通过这种方法,我最终得到了

  

“未捕获的TypeError:无法在'Node'上执行'appendChild':   参数1不是'Node'类型。“

当我尝试使用一个字符串动态创建它时,如果我以声明方式创建它,那么我会使用它,我最终会得到一个简单的文本框。

我希望HTML 5的日期能够正常运行,但从他们想出这个想法的那一刻起,他们似乎并没有改进这一点。

这是我正在使用的代码。注释版本是尝试以声明方式创建它的版本,最终只是一个简单的文本字段,而不是DateTextBox

var startDateField = new dijit.form.DateTextBox({ name: startDateID, class: "dateField", 
value: startDate, onchange: "setstartDate(this.value)"}, startDateID);

//var startDateField = '<input id="' + startDateID + '" data-dojo-type="dijit.form.DateTextField"  name="' + startDateID + '" class="dateField" ' +
//                     'value="' + startDate + '" required onChange="setstartDate(this.value)"/>';

var startDateField = domConstruct.place(startDate, startDateLabel, "after");

1 个答案:

答案 0 :(得分:1)

对于小部件,您必须使用placeAt

var startDateField = new dijit.form.DateTextBox({ name: startDateID, class: "dateField", value: startDate, onchange: "setstartDate(this.value)"}, startDateID);

startDateField.placeAt(startDateLabel, "after");