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,6 +5,7 @@
if (!value) { if (!value) {
return callback(new Error('Please input the age')); return callback(new Error('Please input the age'));
} }
setTimeout(() => {
if (!Number.isInteger(value)) { if (!Number.isInteger(value)) {
callback(new Error('Please input digits')); callback(new Error('Please input digits'));
} else { } else {
@ -14,6 +15,7 @@
callback(); callback();
} }
} }
}, 1000);
}; };
var validatePass = (rule, value, callback) => { var validatePass = (rule, value, callback) => {
if (value === '') { 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 one" value="shanghai"></el-option>
<el-option label="Zone two" value="beijing"></el-option> <el-option label="Zone two" value="beijing"></el-option>
</el-select> </el-select>
</el-form-item><el-form-item> </el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">Query</el-button> <el-button type="primary" @click="onSubmit">Query</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -546,6 +549,7 @@ This example shows how to customize your own validation rules to finish a two-fa
if (!value) { if (!value) {
return callback(new Error('Please input the age')); return callback(new Error('Please input the age'));
} }
setTimeout(() => {
if (!Number.isInteger(value)) { if (!Number.isInteger(value)) {
callback(new Error('Please input digits')); callback(new Error('Please input digits'));
} else { } else {
@ -555,6 +559,7 @@ This example shows how to customize your own validation rules to finish a two-fa
callback(); callback();
} }
} }
}, 1000);
}; };
var validatePass = (rule, value, callback) => { var validatePass = (rule, value, callback) => {
if (value === '') { if (value === '') {

View File

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

View File

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