Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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
Backbone.js 主干表单在运行时删除内置验证器_Backbone.js_Backbone Forms - Fatal编程技术网

Backbone.js 主干表单在运行时删除内置验证器

Backbone.js 主干表单在运行时删除内置验证器,backbone.js,backbone-forms,Backbone.js,Backbone Forms,我已经成功地使用其验证器实现了主干表单插件,例如: var SampleModel = Backbone.Model.extend({ schema: { field1: { title: $t.field1, validators: ['required', 'number'] }, field2: { title: $t.field2, type: 'Select', options: $

我已经成功地使用其验证器实现了主干表单插件,例如:

var SampleModel = Backbone.Model.extend({
    schema: {
        field1: {
            title: $t.field1, validators: ['required', 'number']
        },
        field2: {
            title: $t.field2, type: 'Select', options: $options.field2, validators: ['required']
        },
        notes: {
            title: $t.notes
        }
    }
});
现在,我正试图找到“正确”(此时此刻-任何)的方法来禁用内置验证器,例如,在某些复选框上单击。单击复选框后,允许保存表单而不进行验证

我尝试在没有验证程序的情况下为每个字段重新生成
this.model.schema
,然后执行了
this.model.form.commit()
,但没有执行任何操作

你能给我一些建议吗

编辑:

现在,我正在使用“dirty”方法将附加参数添加到
commit
方法中。请参阅主干表单提交方法源:

commit: function(options, dontValidate) {
    //Validate
    options = options || {};

    var validateOptions = {
        skipModelValidate: !options.validate
    };

    // DIRTY 
    if(!dontValidate) {
        var errors = this.validate(validateOptions);
        if (errors) return errors;
    }

    //Commit
    var modelError;

    var setOptions = _.extend({
        error: function(model, e) {
            modelError = e;
        }
    }, options);

    this.model.set(this.getValue(), setOptions);

    if (modelError) return modelError;
},

我不知道主干表单,但您可以提交自定义函数还是只提交预制函数?在我们的内部验证中,我们使用的函数可以查询表单状态以进行更复杂的“切换”。是的,可以创建自定义的验证程序,但我认为,覆盖所有验证会有些过火。所以我认为应该有办法切换现有的验证。