【Element-UI】實現表單聯動校驗


這里以證件號和證件類型為例

1. 表單元素

 1         <el-form-item label="證件類型:" prop="identifyType" :error="errorTypeInfo">
 2           <el-select v-model.trim="baseInfo.identifyType" placeholder="請選擇證件類型" @change="typeChange"
 3                      :disabled="noInput">
 4             <el-option
 5                 v-for="item in identifyList"
 6                 :key="item.label"
 7                 :label="item.value"
 8                 :value="item.label">
 9             </el-option>
10           </el-select>
11         </el-form-item>
12         <el-form-item label="證件號:" prop="identifyNo" v-if="level === '0'">
13           <el-input class="uppercase" v-model.trim="baseInfo.identifyNo" placeholder="請輸入證件號" maxlength="32" clearable></el-input>
14         </el-form-item>

 2. 證件號的校驗

輸入證件號校驗證件類型這里用了:error ,也可以直接$refs的validateField()去校驗

 

 1 let checkIdCard = function (rule, value, callback) {
 2         if (value) {
 3           if (!vm.baseInfo.identifyType) {
 4             vm.errorTypeInfo = '請選擇證件類型';
 5             return false
 6           }
 7           let type = vm.baseInfo.identifyType;
 8           if (type === '01' || type === '02') {
 9             vm.noInputBirth = true;
10             let result = checkUtil.checkIDNum(value);
11             if (result === '0') {
12               callback(new Error('請輸入正確的證件號'));
13             } else {
14               // 身份證 自動獲取出生和性別
15               vm.baseInfo.birthday = getBirthdayFromIdCard(value);
16               vm.baseInfo.sex = getGenderFromIdCard(value);
17               callback();
18             }
19           } else {
20             vm.noInputBirth = false;
21             if (checkUtil.checkIdentifyNum(type, value) === 'success') {
22               callback();
23             } else {
24               callback(new Error('請輸入正確的證件號'));
25             }
26           }
27         } else {
28           return callback(new Error('請輸入證件號'));
29         }
30       }

 

 3. 證件類型的校驗

 

 1       let checkIdType = (rule, value, callback) => {
 2         if (!value) {
 3           callback(new Error('請選擇證件類型'))
 4         } else {
 5           let type = vm.baseInfo.identifyType
 6           if (type === '01' || type === '02') {
 7             vm.noInputBirth = true;
 8           } else {
 9             vm.noInputBirth = false;
10           callback()
11         }
12       }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM