vue 表單相互校驗

這裏舉例校驗姓和名的長度和不少於3

<el-col :lg="scanType=='newOrderInput'?8:6" :sm="12" class="row_content">

<el-form-item label="姓" class="title" prop="crsExpand.familyName">

<el-input size='mini' placeholder="請輸入姓" @blur="()=>this.$refs['applicant'].validateField('crsExpand.firstName')" v-model="applicant.crsExpand.familyName" clearable maxlength='64'></el-input>

</el-form-item>

</el-col>

<el-col :lg="scanType=='newOrderInput'?8:6" :sm="12" class="row_content">

<el-form-item label="名" class="title" prop="crsExpand.firstName">

<el-input size='mini' placeholder="請輸入名" @blur="()=>this.$refs['applicant'].validateField('crsExpand.familyName')" v-model="applicant.crsExpand.firstName" clearable maxlength='64'></el-input>

</el-form-item>

</el-col>

 

規則:

'crsExpand.familyName': [

                    { required: true, message: Tips.applicant.crsExpand.familyName.isNull, trigger: 'blur' },

                    { validator: validateFamilyName, trigger: 'blur' }

 ],

 'crsExpand.firstName': [

                    { required: true, message: Tips.applicant.crsExpand.firstName.isNull, trigger: 'blur' },

                    { validator: validateFirstName, trigger: 'blur' }

 ],

 

驗證器validator:

// 校驗crs 姓

const validateFamilyName = (rule, value, callback) => {

const res = Validate.isValidEnName(value, 'En'); //這裏有個校驗英文 ,可以不要,同下

if (res !== true) {

// '錄入不合法'

return callback(new Error('錄入不合法'));

}

if (this.applicant.crsExpand.familyName && this.applicant.crsExpand.firstName) {

if ((this.applicant.crsExpand.familyName.length + this.applicant.crsExpand.firstName.length) < 3) {

return callback(new Error('姓與名長度和不少於3'));

}

}

callback();

};

// 校驗crs 名

const validateFirstName = (rule, value, callback) => {

const res = Validate.isValidEnName(value, 'En');

if (res !== true) {

// '錄入不合法'

return callback(new Error('錄入不合法'));

}

if (this.applicant.crsExpand.familyName && this.applicant.crsExpand.firstName) {

if ((this.applicant.crsExpand.familyName.length + this.applicant.crsExpand.firstName.length) < 3) {

return callback(new Error('姓與名長度和不少於3'));

}

}

callback();

};

參考:https://blog.csdn.net/xiaomogg/article/details/102554641

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章