Как "сбросить" Dojo datetextbox по умолчанию?
У меня есть слой наложения JS, который настраивает элементы управления вводом данных в моем веб-приложении как виджеты Dojo. Я беру входные данные, такие как и превращаю их в DateTextBox
виджеты.
Вот мой основной код:
var df = dateformat;
df.replace('mm', 'MM');
var val = input.value;
if (val == undefined){
val = '';
}
return new datebox({
"label": input.title,
"value": val,
"name": input.name,
"id": input.id,
"constraints": { "datePattern": df }
});
Моя проблема в том, что все DateTextBox в конечном итоге устанавливаются с '1970-00-01' в качестве начальной даты, если не указано значение. Я хотел бы, чтобы они были установлены в null или undef, если значение не указано, но это кажется невозможным до запуска.
Есть ли способ установить это, прежде чем я позвоню widget.startup()
?
1 ответ
Решение
Вместо передачи пустой строки в DateTextBox вам нужно передать литерал null
или же undefined
, Я собрал jsfiddle, демонстрирующий различные типы значений и их первоначальное отображение:
require(['dijit/form/DateTextBox', 'dojo/domReady!'], function (DateTextBox) {
//initial value current date
new DateTextBox({
value: new Date()
}).placeAt('myBody');
//no value
new DateTextBox({
}).placeAt('myBody');
//null value
new DateTextBox({
value: null
}).placeAt('myBody');
//undefined value
new DateTextBox({
value: undefined
}).placeAt('myBody');
//empty string value
new DateTextBox({
value: ''
}).placeAt('myBody');
});