Form: fix validate state

pull/7853/head
Leopoldthecoder 2017-10-30 15:09:37 +08:00 committed by 杨奕
parent 146e02c4a3
commit 409a3c852f
3 changed files with 47 additions and 34 deletions

View File

@ -5,15 +5,17 @@
if (!value) {
return callback(new Error('Please input the age'));
}
if (!Number.isInteger(value)) {
callback(new Error('Please input digits'));
} else {
if (value < 18) {
callback(new Error('Age must be greater than 18'));
setTimeout(() => {
if (!Number.isInteger(value)) {
callback(new Error('Please input digits'));
} else {
callback();
if (value < 18) {
callback(new Error('Age must be greater than 18'));
} else {
callback();
}
}
}
}, 1000);
};
var validatePass = (rule, value, callback) => {
if (value === '') {
@ -338,7 +340,8 @@ When the vertical space is limited and the form is relatively simple, you can pu
<el-option label="Zone one" value="shanghai"></el-option>
<el-option label="Zone two" value="beijing"></el-option>
</el-select>
</el-form-item><el-form-item>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">Query</el-button>
</el-form-item>
</el-form>
@ -546,15 +549,17 @@ This example shows how to customize your own validation rules to finish a two-fa
if (!value) {
return callback(new Error('Please input the age'));
}
if (!Number.isInteger(value)) {
callback(new Error('Please input digits'));
} else {
if (value < 18) {
callback(new Error('Age must be greater than 18'));
setTimeout(() => {
if (!Number.isInteger(value)) {
callback(new Error('Please input digits'));
} else {
callback();
if (value < 18) {
callback(new Error('Age must be greater than 18'));
} else {
callback();
}
}
}
}, 1000);
};
var validatePass = (rule, value, callback) => {
if (value === '') {

View File

@ -5,15 +5,17 @@
if (!value) {
return callback(new Error('年龄不能为空'));
}
if (!Number.isInteger(value)) {
callback(new Error('请输入数字值'));
} else {
if (value < 18) {
callback(new Error('必须年满18岁'));
setTimeout(() => {
if (!Number.isInteger(value)) {
callback(new Error('请输入数字值'));
} else {
callback();
if (value < 18) {
callback(new Error('必须年满18岁'));
} else {
callback();
}
}
}
}, 1000);
};
var validatePass = (rule, value, callback) => {
if (value === '') {
@ -331,7 +333,8 @@
<el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option>
</el-select>
</el-form-item><el-form-item>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">查询</el-button>
</el-form-item>
</el-form>
@ -537,15 +540,17 @@
if (!value) {
return callback(new Error('年龄不能为空'));
}
if (!Number.isInteger(value)) {
callback(new Error('请输入数字值'));
} else {
if (value < 18) {
callback(new Error('必须年满18岁'));
setTimeout(() => {
if (!Number.isInteger(value)) {
callback(new Error('请输入数字值'));
} else {
callback();
if (value < 18) {
callback(new Error('必须年满18岁'));
} else {
callback();
}
}
}
}, 1000);
};
var validatePass = (rule, value, callback) => {
if (value === '') {

View File

@ -53,7 +53,10 @@
label: String,
labelWidth: String,
prop: String,
required: Boolean,
required: {
type: Boolean,
default: undefined
},
rules: [Object, Array],
error: String,
validateStatus: String,
@ -165,7 +168,7 @@
validate(trigger, callback = noop) {
this.validateDisabled = false;
var rules = this.getFilteredRule(trigger);
if ((!rules || rules.length === 0) && !this._props.hasOwnProperty('required')) {
if ((!rules || rules.length === 0) && this.required === undefined) {
callback();
return true;
}
@ -216,7 +219,7 @@
getRules() {
var formRules = this.form.rules;
var selfRules = this.rules;
var requiredRule = this._props.hasOwnProperty('required') ? { required: !!this.required } : [];
var requiredRule = this.required !== undefined ? { required: !!this.required } : [];
formRules = formRules ? formRules[this.prop] : [];
@ -255,7 +258,7 @@
let rules = this.getRules();
if (rules.length || this._props.hasOwnProperty('required')) {
if (rules.length || this.required !== undefined) {
this.$on('el.form.blur', this.onFieldBlur);
this.$on('el.form.change', this.onFieldChange);
}