2016-07-24 3 views
0

Я пытаюсь динамически создать dijit.form.DateTextBox, а затем добавить его в существующий документ. Я пробовал несколько вещей, первым из которых является динамическое создание поля через new dijit.form.DateTextBox, а затем добавление его через domConstruct. С помощью этого метода я получаюКак добавить динамически созданный DOJO DateTextBox

"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"); 

ответ

1

Вы должны использовать placeAt, когда дело доходит до виджетов:

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

startDateField.placeAt(startDateLabel, "after");