element ui From表单校验不生效问题解决
解决方案① el-from
上要使用:model
不要使用v-model
<el-form ref="ruleForm" :model="testForm" label-width="100px" :rules="rules">
解决方案② el-from-item
上是否有加prop
,并确定prop
是不是和编写的规则相同
<el-form-item label="活动名称" prop="name"> <el-input v-model="testForm.name"></el-input> </el-form-item> // 校验规则 prop name相同 rules: { name: [ { required: true, message: '请输入活动名称', trigger: 'blur' }, { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' } ] }
解决方案③$refs[formName]
与$refs.formName
注意事项 前者提交的时候要传参@click="submitForm('ruleForm')"
不然不生效
//官方的写法是$refs[formName] <el-form ref="ruleForm" :model="testForm" label-width="100px" :rules="rules"> <el-form-item label="活动名称" prop="name"> <el-input v-model="testForm.name"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm('ruleForm')">提交</el-button> </el-form-item> <el-form> data() { return { testForm:{ name:'', }, rules: { name: [ { required: true, message: '请输入活动名称', trigger: 'blur' }, { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' } ] } } }, methods: { // 第一种方法要接收参数 并且$refs[formName] submitForm(formName) { this.$refs[formName].validate((valid) => { if (valid) { alert('submit!'); } else { console.log('error submit!!'); return false; } }); },
//网上也有用 $refs.formName 第二种写法的 <el-form ref="ruleForm" :model="testForm" label-width="100px" :rules="rules"> <el-form-item label="活动名称" prop="name"> <el-input v-model="testForm.name"></el-input> </el-form-item> <el-form-item> // 不需要传参 第二种方式 <el-button type="primary" @click="submitForm()">提交</el-button> </el-form-item> <el-form> data() { return { testForm:{ name:'', }, rules: { name: [ { required: true, message: '请输入活动名称', trigger: 'blur' }, { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' } ] } } }, methods: { // 第二种方法不需要接收参数 并且$refs.formName submitForm() { this.$refs.formName.validate((valid) => { if (valid) { alert('submit!'); } else { console.log('error submit!!'); return false; } }); },
解决方案④网上有人说 未在data
里面声明初始数据也会报错(未复现.解决方案仅供参考)
<el-form-item label="活动名称" prop="name"> <el-input v-model="testForm.name"></el-input> </el-form-item> data() { return { // 校验规则 prop name相同 testForm:{ name:'',//意思是这个位置没有声明 name 也会不生效 我测试了一下不声明也生效 仅供参考 }, rules: { name: [ { required: true, message: '请输入活动名称', trigger: 'blur' }, { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' } ] } } }
平时遇到的一些小问题 自我记录 有补充的地方希望大家多多提出意见 共同学习!
到此这篇关于element ui From表单校验不生效问题解决的文章就介绍到这了,更多相关element From表单校验内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
vuex中...mapstate和...mapgetters的区别及说明
这篇文章主要介绍了vuex中...mapstate和...mapgetters的区别及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-08-08vue2.0结合DataTable插件实现表格动态刷新的方法详解
这篇文章主要介绍了vue2.0结合DataTable插件实现表格动态刷新的方法,结合具体项目实例形式分析了vue2.0结合DataTable插件实现表格动态刷新过程中遇到的问题与相应的解决方法,需要的朋友可以参考下2017-03-03在vue3中使用el-tree-select实现树形下拉选择器效果
el-tree-select是一个含有下拉菜单的树形选择器,结合了 el-tree 和 el-select 两个组件的功能,这篇文章主要介绍了在vue3中使用el-tree-select做一个树形下拉选择器,需要的朋友可以参考下2024-03-03
最新评论