vue el-form表单验证,多表单验证及动态数据项表单验证

本文深入探讨了三种常见的表单验证场景:固定表单项的验证、动态增减表单项的验证以及多表单同时验证的方法。针对每种场景,提供了详细的实现思路与代码示例,帮助开发者更好地理解和应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

form表单验证是几乎所有web项目或者APP都会遇到的,那么通常遇到的表单验证情况主要分为以下三种:

1.form表单中的表单项项都是写死的

意思是说,表单项不是根据动态数据加载出来的。那么只需要写好对应的验证规则即可。如下(element官网代码): 在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.form表单中的表单项都是动态加载的(动态增减表单项)

意思是说,可以通过事件达到动态的增加或者减少表单的表单项。那么,就需要使用循环遍历的方式来动态的加载整个表单。(element官网代码)
在这里插入图片描述

这里需要注意的是,:prop的写法。一定是遍历的数组’domains.’ 加上(domain,index)中 的index,再加上‘.value’。

原因是,表单验证时它需要去找到具体的某一个表单项,一旦prop写错,是无法达到验证效果的。
在这里插入图片描述

这两个方法为增减表单项的方法。

在这里插入图片描述

3.多表单验证意思是,一个页面上有多个表单,在执行提交表单时,要对这个页面上的所有表单进行验证。(个人代码)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

### Vue2 中 Element UI `el-form` 组件的表单验证规则 `rules` 在 Vue2 和 Element UI 结合使用的场景下,`el-form` 组件提供了强大的表单验证功能。通过设置 `rules` 属性来定义各个字段的具体校验规则,可以确保用户输入的数据满足特定条件。 #### 定义表单验证规则 为了实现有效的数据验证,在创建表单实例时需指定 `model` 和 `rules` 两个重要属性: - **model**: 表示整个表单对象的数据源。 - **rules**: 描述各字段应遵循哪些约束条件以及违反后的提示信息。 下面是一个简单的例子展示了如何配置 `rules` 来完成必填项、长度限制等常见类型的检验[^2]。 ```html <template> <el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm"> <!-- 用户名 --> <el-form-item label="用户名:" prop="username"> <el-input v-model="ruleForm.username"></el-input> </el-form-item> <!-- 密码 --> <el-form-item label="密码:" prop="password"> <el-input type="password" v-model="ruleForm.password" autocomplete="off"></el-input> </el-form-item> <!-- 提交按钮 --> <el-button @click.prevent="submitForm('ruleForm')">提交</el-button> </el-form> </template> <script> export default { data() { var validatePass = (rule, value, callback) => { if (value === '') { callback(new Error('请输入密码')); } else { if (this.ruleForm.checkPass !== '') { this.$refs.ruleForm.validateField('checkPass'); } callback(); } }; return { ruleForm: { username: '', password: '' }, rules: { username: [ { required: true, message: '请输入用户名', trigger: 'blur' }, { min: 3, max: 10, message: '长度在 3 到 10 个字符', trigger: 'blur' } ], password: [{ validator: validatePass, trigger: 'blur' }] } }; }, methods: { submitForm(formName) { this.$refs[formName].validate((valid) => { if (valid) { alert('提交成功!'); } else { console.log('错误提交!!'); return false; } }); } } }; </script> ``` 此代码片段中,对于每一个需要被验证的 `<el-form-item>` 元素都指定了对应的 `prop` 值以便关联到相应的验证规则上;而自定义函数 `validatePass()` 被用来处理更复杂的逻辑判断,比如确认两次输入的一致性等问题。
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值