1. 程式人生 > 實用技巧 >element ui使用v-for迴圈form表單校驗的實現

element ui使用v-for迴圈form表單校驗的實現

<template>
  <el-form :model="dynamicValidateForm" ref="dynamicValidateForm" label-width="120px" class="demo-dynamic">
    <el-row v-for="(domain, index) in dynamicValidateForm.persons" :key="domain.key">
      <el-col :span="8">
        <el-form-item :label="'姓名' + index+1
" :prop="'persons.' + index + '.name'" :rules="rules.name"> <el-input v-model="domain.name"></el-input> </el-form-item> </el-col> <el-col :span="8"> <el-form-item :label="'手機號碼' + index+1" :prop="'persons.' + index + '.iphone'" :rules="
rules.iphone"> <el-input v-model="domain.iphone"></el-input> </el-form-item> </el-col> <el-col :span="8"> <el-form-item :label="'身份證號碼' + index+1" :prop="'persons.' + index + '.idCard'" :rules="rules.idCard"> <el-input v-model="
domain.idCard"></el-input> </el-form-item> </el-col> </el-row> <el-form-item> <el-button type="primary" @click="submitForm('dynamicValidateForm')">提交</el-button> <el-button @click="addPerson">新增域名</el-button> <el-button @click="resetForm('dynamicValidateForm')">重置</el-button> </el-form-item> </el-form> </template> <script> export default { data() { return { dynamicValidateForm: { persons: [ { name: '', iphone: '', idCard: '' }, { name: '', iphone: '', idCard: '' }, { name: '', iphone: '', idCard: '' } ], email: '' }, rules: { name: [ { required: true, message: '請輸入姓名', trigger: 'blur' } ], iphone: [ { required: true, message: '請輸入手機號碼', trigger: 'blur' }, { pattern: /^[1][3,4,5,6,7,8,9][0-9]{9}$/, message: '請輸入正確格式的手機號碼', trigger: 'blur' } ], idCard: [ { required: true, message: '請輸入身份證號碼', trigger: 'blur' }, { pattern: /^[1-9]\d{5}[1-9]\d{3}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}(\d|x|X)$/, message: '請輸入正確格式的身份證號碼', 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(); }, addPerson() { this.dynamicValidateForm.persons.push({ name: '', iphone: '', idCard: '' }); } } } </script>