我想在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。如何让它显示我设置为默认的日期?
答案 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()%>"/>
没有测试过语法是否正确,但我认为你明白了。