2014-03-03 130 views
0

我想在一个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并将其显示的视图。这适用于其他一切,但不适用于日期。 datepicker无法显示此数据,只是显示dd/mm/yyyy。我怎样才能让它显示我设定为默认的日期?

回答

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数据输入可以处理

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()%>"/> 

还没有测试过,如果这在句法上是正确的,但我认为你明白了。