fix(FormItem): 解决required属性无法校验的bug

This commit is contained in:
Eager 2018-09-16 00:34:58 +08:00
parent 634c34e9a0
commit 16f8b759bc

View file

@ -150,15 +150,19 @@
methods: {
setRules() {
let rules = this.getRules();
if (rules.length) {
if (rules.length&&this.required) {
return;
}else if (rules.length) {
rules.every((rule) => {
this.isRequired = rule.required;
});
this.$off('on-form-blur', this.onFieldBlur);
this.$off('on-form-change', this.onFieldChange);
this.$on('on-form-blur', this.onFieldBlur);
this.$on('on-form-change', this.onFieldChange);
}else if (this.required){
this.isRequired = this.required;
}
this.$off('on-form-blur', this.onFieldBlur);
this.$off('on-form-change', this.onFieldChange);
this.$on('on-form-blur', this.onFieldBlur);
this.$on('on-form-change', this.onFieldChange);
},
getRules () {
let formRules = this.form.rules;
@ -174,10 +178,14 @@
return rules.filter(rule => !rule.trigger || rule.trigger.indexOf(trigger) !== -1);
},
validate(trigger, callback = function () {}) {
const rules = this.getFilteredRule(trigger);
let rules = this.getFilteredRule(trigger);
if (!rules || rules.length === 0) {
callback();
return true;
if (!this.required) {
callback();
return true;
}else {
rules = [{required: true}];
}
}
this.validateState = 'validating';