我正在使用BackboneJS MVC模式,并且有一个包含2个字段的表单,用户可以选择。
只要用户选择有任何变化(调用验证),我就会调用changeAction;
changeAction: function (event) {
var self = this;
var target = event.target;
target.value = $.trim(target.value);
change[target.name] = target.value;
this.model.set(change);
var check = self.model.validateItem(target.id);
if (check.isValid === false) {
self.addValidationError(target.id, check.message);
} else {
self.removeValidationError(target.id);
}
}
我的验证在模型中定义如下;
this.validators.myDropDownField = function(value) {
return !_.isUndefined(value) && !_.isNull(value) && $.trim(value).length > 0 ? {
isValid: true
} : {
isValid: false,
message: "Select dropdown field"
};
};
validateItem: function(key) {
var result = (this.validators[key]) ? this.validators[key](this.get(key)) : {
isValid: true
};
return result;
}
现在我的问题是我不想在changeAction中对模型做任何事情。
但是,如果我删除this.model.set(change)
changeAction()
验证无法正常运行。我没有得到函数中的值
this.validators.myDropDownField
我该如何处理?