如何添加动态创建的 DOJO DateTextBox

How to add a dynamically created DOJO DateTextBox

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

"Uncaught TypeError: Failed to execute 'appendChild' on 'Node': parameter 1 is not of type '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");

你必须使用 placeAt 当涉及到小部件时:

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

startDateField.placeAt(startDateLabel, "after");