如何"取消设置"Dojo datetextbox默认?

Chr*_*ers 3 javascript dojo dijit.form dojo-1.9

我有一个JS覆盖层,它在我的Web应用程序上设置数据输入控件作为dojo小部件.我抓住像<input type ="text"class ="date"/>这样的输入并将它们变成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 }
            });
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果没有提供任何值,所有DateTextBox的最终设置为'1970-00-01'作为初始日期.如果没有提供任何值,我希望将它们设置为null或undef,但这在启动之后似乎不可能.

在我打电话之前有没有办法设置这个widget.startup()

Buf*_*alo 6

而不是将空字符串传递给DateTextBox,您需要传递文字nullundefined.我整理了一个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');
});
Run Code Online (Sandbox Code Playgroud)

的jsfiddle