2016-07-24 15 views
0

Ich habe Schwierigkeiten, eine dijit.form.DateTextBox dynamisch erstellen und dann zu einem vorhandenen Dokument hinzufügen. Ich habe mehrere Dinge ausprobiert, zuerst das Feld über new dijit.form.DateTextBox dynamisch erstellen und dann über domConstruct hinzufügen. Mit dieser Methode bekomme ich am EndeSo fügen Sie eine dynamisch erstellte DOJO DateTextBox

"Uncaught TypeError: Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'."

.

Wenn ich versuche, es dynamisch mit einer Zeichenfolge zu erstellen, die das auswertet, was ich verwenden würde, wenn ich es deklarativ erstellen würde, dann habe ich ein einfaches Textfeld.

Ich war zuversichtlich, dass das HTML 5-Datum funktionieren würde, aber es scheint nicht, dass sie das ein einzelnes Bit seit dem Moment verbessert haben, als sie auf die Idee kamen.

Hier ist der Code, den ich verwende. Die kommentierten Version ist derjenige, der es versucht, deklarativ zu schaffen, die als nur ein einfaches Textfeld endet, und keine 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"); 

Antwort

1

Sie haben placeAt zu verwenden, wenn es um Widgets kommt:

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

startDateField.placeAt(startDateLabel, "after");