Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 主干模型和日期选择器默认日期_Javascript_Jquery_Backbone.js_Datepicker - Fatal编程技术网

Javascript 主干模型和日期选择器默认日期

Javascript 主干模型和日期选择器默认日期,javascript,jquery,backbone.js,datepicker,Javascript,Jquery,Backbone.js,Datepicker,我想在html日期选择器中显示默认日期,如下所示: <input class="topcoat-text-input"id="birthday" type="date" name="birthday" value= "<%=birthday%>"/> 然后我有一个视图,该视图获取html模板,将模型注入为JSON并显示它。这适用于其他一切,但不适用于日期。 日期选择器无法显示此数据,而只显示dd/mm/yyyy。如何让它显示我设置为默认的日期?默认日期。toString

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

<input class="topcoat-text-input"id="birthday" type="date" name="birthday" value= "<%=birthday%>"/>
然后我有一个视图,该视图获取html模板,将模型注入为JSON并显示它。这适用于其他一切,但不适用于日期。 日期选择器无法显示此数据,而只显示dd/mm/yyyy。如何让它显示我设置为默认的日期?

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

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


我还没有测试它在语法上是否正确,但我想你明白了。

在模型中设置日期对象之前,需要解析它。您可以在initialize方法中执行此操作,如下所示:

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日期输入可以处理的字符串

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);
            }      
        }
});