【问题标题】:How to "unset" Dojo datetextbox default?如何“取消设置” Dojo datetextbox 默认值?
【发布时间】:2013-09-18 11:42:15
【问题描述】:

我有一个 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()之前有没有办法设置这个?

【问题讨论】:

    标签: javascript dojo dijit.form dojo-1.9


    【解决方案1】:

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

    jsfiddle

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-11
      • 2011-12-29
      • 2018-04-21
      • 1970-01-01
      • 2011-12-31
      • 2020-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多