<template>
<el-form :model="form" ref="dynamicForm" label-width="100px">
<el-row :gutter="20">
<el-col :span="12" v-for="(item, index) in form.items" :key="index">
<el-form-item :label="item.label" :prop="'items.' + index + '.value'" :rules="item.rules">
<el-input v-model="item.value"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item>
<el-button type="primary" @click="submitForm">提交</el-button>
</el-form-item>
</el-form>
</template>
<script>
export default {
data() {
return {
form: {
items: [
{ label: '输入项1', value: '', rules: [{ required: true, message: '请输入内容', trigger: 'blur' }] },
{ label: '输入项2', value: '', rules: [{ required: true, message: '请输入内容', trigger: 'blur' }] }
]
}
};
},
methods: {
submitForm() {
this.$refs.dynamicForm.validate((valid) => {
if (valid) {
alert('提交成功!');
} else {
console.log('表单验证失败!');
return false;
}
});
}
}
};
</script>
这个例子中,我们创建了一个包含两个输入项的动态表单,每个输入项都有一个必填的验证规则。当用户点击提交按钮时,会触发表单验证。如果验证通过,会弹出提示框表示成功,如果失败,则在控制台输出错误信息。这个例子展示了如何结合Vue和Element UI创建动态表单并进行数据验证。