最新在做一套OA系統,UI使用elementUI做的,有個需求,在做員工生日提醒的時候,錄入個人信息,以及個人更新資料的時候,生日需要保持和身份證上的生日保持一致。
思路:確認密碼驗證的思路來驗證就可以了。
具體代碼:
<template> <div class="hello"> <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm"> <el-form-item label="密碼" prop="password"> <el-input v-model="ruleForm.password"></el-input> </el-form-item> <el-form-item label="重復密碼" prop="repassword"> <el-input v-model="ruleForm.repassword"></el-input> </el-form-item> <el-form-item label="身份證" prop="idcard"> <el-input v-model="ruleForm.idcard"></el-input> </el-form-item> <el-form-item label="生日" prop="birthday"> <el-input v-model="ruleForm.birthday"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm('ruleForm')">立即創建</el-button> <el-button @click="resetForm('ruleForm')">重置</el-button> </el-form-item> </el-form> </div> </template> <script> export default { data() { var repasswordValidator = (rule, value, callback) => { if (value === '') { callback(new Error('請再次輸入密碼')); } else if (value !== this.ruleForm.password) { callback(new Error('兩次輸入密碼不一致!')); } else { callback(); } }; var birthdayValidator = (rule, value, callback) => { if (value === '') { callback(new Error('請再次輸入生日')); } else if (this.ruleForm.idcard.indexOf(value) == -1) { callback(new Error('生日和身份證生日不一致!')); } else { callback(); } }; return { ruleForm: { password: '123', repassword: '123', idcard: '202541199309010875', birthday: '', }, rules: { password: [ { required: true, message: '請輸入密碼', trigger: 'blur' }, ], repassword: [ { required: true, message: '請輸入確認密碼', trigger: 'blur' }, { validator: repasswordValidator,trigger: 'blur' }, ], idcard: [ { required: true, message: '請輸入身份證', trigger: 'change' } ], birthday: [ { required: true, message: '請輸入生日', trigger: 'blur' }, { validator: birthdayValidator,trigger: 'blur' }, ] } }; }, methods: { submitForm(formName) { this.$refs[formName].validate((valid) => { if (valid) { alert('submit!'); } else { console.log('error submit!!'); return false; } }); }, resetForm(formName) { this.$refs[formName].resetFields(); } } } </script>