<template> <div id="login"> <div class="con"> <h1> <img src="../assets/images/logo.png" alt=""> </h1> <div class="user"> <header> <p>用戶注冊</p> </header> <div class="reg"> <el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm"> <el-form :model="dynamicValidateForm" ref="user" label-width="100px" class="demo-dynamic" hide-required-asterisk=false> <el-form-item class="pass" prop="value" label="用戶名" :rules="[ { required: true, message: '請輸入用戶名', trigger: 'blur' }, ]" > <el-input v-model="dynamicValidateForm.value" ></el-input> </el-form-item> </el-form> <el-form-item label="密碼" prop="pass" class="pass"> <el-input type="password" v-model="ruleForm.pass" autocomplete="off"></el-input> </el-form-item> <el-form-item label="確認密碼" prop="checkPass" class="pass"> <el-input type="password" v-model="ruleForm.checkPass" autocomplete="off"></el-input> </el-form-item> <el-form :model="dynamicValidateForm" ref="dynamicValidateForm" label-width="100px" class="demo-dynamic" hide-required-asterisk=false> <el-form-item class="pass" prop="email" label="郵箱" :rules="[ { required: true, message: '請輸入郵箱地址', trigger: 'blur' }, { type: 'email', message: '請輸入正確的郵箱地址', trigger: ['blur', 'change'] } ]" > <el-input v-model="dynamicValidateForm.email" ></el-input> </el-form-item> </el-form> <el-form-item> <el-button type="primary" @click="submitForm('ruleForm','user')">提 交</el-button> <el-button @click="resetForm('ruleForm','dynamicValidateForm','user')" class="reset">重 置</el-button> </el-form-item> </el-form> </div> </div> </div> </div> </template> <script> export default { props:[''], data() { var validatePass = (rule, value, callback) => { if (value === '') { callback(new Error('請輸入密碼')); } else { if (this.ruleForm.checkPass !== '') { this.$refs.ruleForm.validateField('checkPass'); } callback(); } }; var validatePass2 = (rule, value, callback) => { if (value === '') { callback(new Error('請再次輸入密碼')); } else if (value !== this.ruleForm.pass) { callback(new Error('兩次輸入密碼不一致!')); } else { callback(); } }; return { ruleForm: { pass: '', checkPass: '', age: '', }, rules: { pass: [ { validator: validatePass, trigger: 'blur' } ], checkPass: [ { validator: validatePass2, trigger: 'blur' } ], }, dynamicValidateForm: { value: '', email: '' } }; }, components: {}, computed: {}, mounted() {}, methods: { submitForm(formName,dynamicValidateForm,user) { this.$refs[formName].validate((valid) => { if (valid) { alert('submit!'); } else { console.log('error submit!!'); return false; } }); this.$refs.dynamicValidateForm.validate((valid) => { if (valid) { alert('submit!'); } else { console.log('error submit!!'); return false; } }); this.$refs.user.validate((valid) => { if (valid) { alert('submit!'); } else { console.log('error submit!!'); return false; } }); }, resetForm(formName,dynamicValidateForm,user) { this.$refs[formName].resetFields(); this.$refs.dynamicValidateForm.resetFields(); this.$refs.user.resetFields(); } }, }