vue elementui el-form rules动态验证

                    vue elementui el-form rules动态验证

一、介绍

简介:在使用elementUI el-form 中,对于业务不同的时候可能会产生不同表单结构,但是都是存在同一个表单控件el-form中。

图片介绍:

1、在用户选择单选或多选时会有A,B,C,D,E五个选项

2、在用户选择简答题时只会题干,答案以及解析选项(主要是通过v-if来进行判断)

问题引入:当用户选择不同的题库时会产生不同的form表单选项,这个时候在进行表单提交验证的时候就需要根据不同试题类型进行判断,这个时候就需要两个rules来动态进行表单校验。

解决方法:在页面加载的时候在computed方法中进行动态判断直接返回赋值。

代码介绍:

// elementui信息
<el-form :model="addQueTable" ref="addQueTable" :rules="addQueRulesList">
<el-form>

// data中定义rules
updateQusRulesSel:[];
updateQusRules:[];

// computed方法
computed: {
// this.updateQusTable.showSelect自己定义的标识
    updateQusRulesList: function() {
        if (this.updateQusTable.showSelect) {
		    return this.updateQusRulesSel;
	    } else {
		    return this.updateQusRules;
    }
}

总结:在computed中进行值绑定,当该表单显示的时候就会触发(一开始是隐藏的),如果一开始页面加载的时候就触发会无法进行值判断,从而报错。其实能解决问题,通过该种方法。

二、最简单解决方法

在el-form中定义的rules检验字段,如果你的rules中有字段通过v-if进行隐藏,rules是不会对隐藏的字段选项进行判断,只要定义一个完整的rules就行,v-if隐藏的部分不会进入校验方法中。

把简单的问题复杂化了!!!!!

感谢该用户:

Vue3 中,`<el-form>` 是 Element UI 提供的一个用于创建表单的组件,它结合了 HTML 表单和 Vue.js 的双向数据绑定和指令功能。Vue3 的表单验证通常通过 `v-model` 和自定义事件来进行,而 Element UI 则提供了更丰富的验证方法。 Vue3 的 `el-form` 验证主要依赖以下几个方面: 1. **内置验证规则**:`el-form` 包含了一个 `validate` 方法,可以通过设置 `rules` 属性来配置每个字段的验证规则,例如必填、长度限制、邮箱格式等。比如: ```html <el-form :model="form" :rules="rules"> <el-form-item label="姓名" prop="name"> <el-input v-model="form.name"></el-input> <el-form-error slot="append">请输入姓名</el-form-error> </el-form-item> </el-form> ``` 这里的 `rules` 可能会包含 `required`(必需),`minLength` 或 `maxLength`(长度限制)等。 2. **自定义验证**:如果需要更复杂的验证逻辑,可以通过 `@validate` 触发器来编写自定义验证函数,这个函数会在验证时被调用: ```javascript data() { return { form: {}, rules: { password: [ { required: true, message: '密码不能为空', trigger: ['blur', 'change'] }, { min: 6, message: '密码长度至少为6位', trigger: ['blur'] } ] }, validateForm: validateForm }; }, methods: { validateForm(form) { // 在这里添加自定义验证逻辑 } } ``` 3. **错误提示**:`el-form` 会在输入不合规时显示错误信息,你可以通过 `<el-form-item>` 的 `error-message` 或者 `el-form` 的 `inline-message` 来控制错误消息的展示位置。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值