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

還沒有測試過,如果這在句法上是正確的,但我認爲你明白了。