【问题标题】:backbone models and datepicker default date主干模型和日期选择器默认日期
【发布时间】:2014-03-03 13:19:16
【问题描述】:

我想在 html 日期选择器中显示一个默认日期,如下所示:

<input class="topcoat-text-input"id="birthday" type="date" name="birthday" value= "<%=birthday%>"/>

其中 应该是我的骨干模型中的生日值,我将其定义为:

model = Backbone.Model.extend({
        defaults: {
            birthday: new Date(1984, 01, 01),
        }

然后我有一个获取 html 模板的视图,将模型作为 JSON 注入并显示它。这适用于其他所有内容,但不适用于日期。 日期选择器无法显示此数据,而仅显示 dd/mm/yyyy。我怎样才能让它显示我设置为默认的日期?

【问题讨论】:

    标签: javascript jquery backbone.js datepicker


    【解决方案1】:

    您需要先解析 Date 对象,然后再将其设置到模型中。你可以在初始化方法中这样做:

    model = Backbone.Model.extend({
            initialize: function() {
                if(!this.has('birthday')) {
                    var defaultDate = new Date(1984,01,10);
                    //Notice the months are zero based so you need to +1
                    var date = (defaultDate.getMonth() + 1) + '/' + defaultDate.getDate() + '/' + defaultDate.getFullYear();
                    this.set('birthday', date);
                }      
            }
    });
    

    这应该将日期设置为 HTML 日期输入可以处理的字符串

    【讨论】:

      【解决方案2】:

      默认的 Date.toString() 方法以日期字段不接受的格式输出。您需要更具体地写出字符串。

      <% birthday = new Date(birthday) %>
      <input class="topcoat-text-input"id="birthday" type="date" name="birthday" value= "<%=birthday.getDate() + "-" + birthday.getMonth() + "-" + birthday.getFullYear()%>"/>
      

      尚未测试这在语法上是否正确,但我想你明白了。

      【讨论】:

        猜你喜欢
        • 2021-03-14
        • 2011-10-02
        • 2017-01-18
        • 2013-03-20
        • 2011-04-19
        • 2013-08-22
        • 2016-03-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多