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

Can I have form controls in backbone-forms that don't update the model directly?

我以前从未使用过 backbone.js,我正在尝试使用 backbone-forms 创建一个表单,当它的提交函数被调用并更新模型时,它只更新某些字段模型 and/or 从表单字段计算值以放入模型的不同字段。

这是我的代码中的一个示例。

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 框成为范围。当使用提交功能提交表单时,我仍然想使用日期和范围来创建一个实际放入模型中的开始和结束日期,而不是它当前所做的,即放入其中的值直接在模型中的框。实现这一目标的最佳方法是什么?我应该覆盖这个特定 class 的提交功能吗?还是我不应该使用 backbone-forms 而只对模板和事件使用 backbone?

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

关于根据其他值的变化来改变输入,自述文件中有一个 link 的演示。