javascript - ¿Cómo "desarmar" Dojo datetextbox por defecto?
dijit.form dojo-1.9 (1)
Tengo una capa de superposición JS que configura controles de entrada de datos en mi aplicación web como widgets de Dojo. Cojo entradas como <input type = "text" class = "date" /> y las convierto en widgets de DateTextBox
.
Aquí está mi código básico:
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 }
});
Mi problema es que todos los DateTextBox terminan con ''1970-00-01'' como la fecha inicial si no se proporciona ningún valor. Me gustaría que se establezca en null o undef si no se proporciona ningún valor, pero esto no parece posible hasta después del inicio.
¿Hay alguna manera de configurar esto antes de llamar a widget.startup()
?
En lugar de pasar cadena vacía al DateTextBox, debe pasar el literal null
o undefined
. Arreglé un jsfiddle que demuestra los diferentes tipos de valores y cómo se muestran inicialmente:
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'');
});