4
var User = Backbone.Model.extend({
    schema: {
        date: {type: 'Date'}
    }
});

var user = new User();

var form = new Backbone.Form({
    model: user
}).render();

$('.bootstrap').append(form.el);

我输入什么类型来使用包含的 JQuery-UI 日期选择器?除了:

旧的 jQuery 编辑器仍然包括在内,但可能会移动到另一个存储库:

jqueryui.List
jqueryui.Date(使用 jQuery UI 弹出日期选择器)
jqueryui.DateTime

架构类型在引号中声明,我无法弄清楚 jqueryui.Date 的字符串是什么 - 这肯定行不通。

4

2 回答 2

9

您想创建一个您将命名的自定义编辑器,例如:“DatePicker”。

所有编辑器都附加到 Backbone.Form.editors。因为 DatePicker 的呈现方式与文本字段完全一样,所以我们可以使用文本字段作为基础,并且只覆盖特定于 datepicker 的行为。

我经常将 moment.js 用于一些与日期相关的工作,所以这个例子也包括了这个。它也是基于 Bootstrap DatePicker 而不是 jQuery 的,但这几乎 100% 相同。

Backbone.Form.editors.DatePicker = Backbone.Form.editors.Text.extend({
    render: function() {
        // Call the parent's render method
        Backbone.Form.editors.Text.prototype.render.call(this);
        // Then make the editor's element a datepicker.
        this.$el.datepicker({
            format: 'yyyy-mm-dd',
            autoclose: true,
            weekStart: 1
        });

        return this;
    },

    // The set value must correctl
    setValue: function(value) {
        this.$el.val(moment(value).format('YYYY-MM-DD'));
    }
});

就是这样,您现在可以像这样使用日期选择器:

schema: {
    birthday: { title: 'When were you born', type: 'DatePicker'}
}
于 2013-04-11T10:34:39.680 回答
0

不确定你的问题是否正确,但我认为你可以在视图的初始化方法中附加 Jquery 日期选择器

于 2013-02-20T02:00:32.900 回答