骨干模型和datepicker默认日期

时间:2014-03-03 13:19:16

标签: javascript jquery backbone.js datepicker

我想在html datepicker中显示默认日期,如下所示:

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

其中&lt;%= birthday%&gt;应该是我的骨干模型中的生日值,我定义为:

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

然后我有一个获取html模板的视图,将模型注入JSON并显示它。这适用于其他所有内容,但不适用于日期。 datepicker无法显示此数据,只显示dd / mm / yyyy。如何让它显示我设置为默认的日期?

2 个答案:

答案 0 :(得分:2)

在模型中设置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日期输入可以处理的字符串

答案 1 :(得分:0)

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

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

没有测试过语法是否正确,但我认为你明白了。