126 字
1 分钟
Vue3动态添加输入框并添加规则校验
前言
利用Vue 3的响应式能力和组合式API,可以轻松实现动态添加输入框及其实时校验。通过v-model绑定输入框值,结合自定义规则与watch监听数据变化,开发者能够灵活地扩展表单功能并确保输入内容的有效性。本文将简明介绍如何运用Vue 3实现这一过程,让您的应用交互更加智能高效。
实现步骤
<template> <div> <el-form :model="info" ref="forms"> <el-table ref="tableRef" :data="info.data" border> <el-table-column align="center" property="name" label="*姓名"> <template #default="row"> <el-form-item :prop="'data.' + row.$index + '.name'" :rules="formRules.name"> <el-input placeholder="请输入姓名" v-model="info.data[row.$index].name" /> </el-form-item> </template> </el-table-column> <el-table-column align="center" property="role" label="角色"> <template #default="row"> <el-form-item :prop="'data.' + row.$index + '.role'" :rules="formRules.role"> <el-input placeholder="请输入角色" v-model="info.data[row.$index].role" /> </el-form-item> </template> </el-table-column> </el-table> </el-form> <el-button type="primary" @click="submitForm()">Submit</el-button> </div></template><script setup lang="ts">import {ref, reactive} from 'vue'import type { FormInstance } from 'element-plus'let info:any = reactive({ data:[ { id: 0, name: '', role:'' },{ id: 1, name: '', role:'' } ]})const formRules = reactive({ name: [{ required: true, message: '请输入姓名', trigger: 'change' }], role: [{ required: true, message: '请输入角色', trigger: 'change' }]})const forms = ref<FormInstance>()const submitForm = async () => { if (!forms) return return await forms.value?.validate((valid: any) => { if (valid) { console.log('submit!') } else { console.log('error submit!') return false } })}</script>如果这篇文章对你有帮助,欢迎分享给更多人!
发现错误或想要改进这篇文章?
在 GitHub 上编辑此页 Vue3动态添加输入框并添加规则校验
https://m.olinl.com/posts/vue3-dynamic-validate/