我可以在骨干表单中使用不直接更新模型的表单控件吗?

时间:2015-01-14 03:56:25

标签: javascript backbone.js backbone-forms

我之前从未使用过backbone.js,我正在尝试使用骨干表单创建一个表单,当调用其commit函数并更新模型时,它只更新模型中的某些字段和/或计算表单字段中的值放在模型的不同字段中。

以下是我的代码中的示例。

queryForm = new Backbone.Form({
        model: queryModel,
        submitButton: "Submit",
        schema: {
            start_date: { type: 'Text', title: "Date" },
            radio_range: { type: "Radio",
                title: "Date Method",
                options: { value1: "Start and End", value2: "Minute Range"}},

            end_date: { type: 'Text', title: "Range (Minutes)" },
            firewall_ip: { type: 'Text', title: "Firewall IP" },
            firewall_port: { type: 'Text', title: "Firewall Port" }
        }

    }).render();

当用户将收音机更改为“Minute Range”时,我想将start_date框更改为日期框,并将end_date框变为范围。当使用提交函数提交表单时,我仍然希望使用日期和范围来创建实际放在模型中的开始和结束日期,而不是它当前所做的事情,这就是它的值。直接在模型中的框。实现这一目标的最佳方法是什么?我应该覆盖这个特定类的提交函数吗?或者我不应该使用骨干表单,只使用骨干与模板和事件?

1 个答案:

答案 0 :(得分:1)

是的,覆盖表单实例的commit()方法应该可行。否则你也可以覆盖getValue()方法。

在根据其他值的变化更改输入方面,在自述文件中有一个演示链接。