解决VUE项目使用Element-ui 下拉组件的验证失效问题
问题描述
在使用Element-ui组件做项目开发时候有可能会使用下拉框组件,如果下拉框组件的option选项是使用v-if指令遍历的,
这样也没有问题,如果加上multiple属性,也就是可以多选 就会出现下拉框验证时失效问题.
问题现象
如图所示,明明已经选择了选项,可是验证还是为空,不能提交请求
解决思路
如果说找遍组件里的方法都无法获得我们适合使用的,那就要动用原生基本功了
console.log一下v-model在此组件上绑定的属性,你发现你绑定的字符串(一般情况下都是String,这里就拿字符串举例说明)打印出来却是Array
所以如果验证必填的话我们就直接判断v-model在此组件上绑定的属性的length是否大于0就好了;其他要求的话可以留言
思路验证
我有试验过在rules增加type: ‘test',表面上看起来是可以的,打开控制台,它已经报错了: Unkown rule type text,如下图:
竟然没有type=text属性! 好吧~只能继续
既然多选设置之后输出的是数组, 那就跟chexkbox一样 ,我可以把v-model属性改成[],然后rules里面的type: 'array'实验一下,结果不报错,验证也不生效
可见Element还是有坑踩哦,我的项目紧急就先原生解决了,哪天找到组件解决办法我会及时更新的,如果谁知道解决办法也请分享给我哦~欢迎技术交流
解决代码
if (this.form.STORE_PROVINCE.length === 0 || this.form.STORE_PROVINCE.length == '') { this.$message.error('请选择至少一个区域') return false } else { // 要执行的代码 }
以上便可解决了。
补充知识element ui表单验证select既获取label又获取value
html部分
<el-form-item label="所属公司" prop="Name"> <el-select v-model="ruleForm.Name" placeholder="请选择所属公司" @change="selectGet"> <el-option v-for="item in ruleForm.options2" :key="item.id" :value="item.id" :label="item.Name"></el-option> </el-select> </el-form-item>
js部分
//获取selectlabel值 selectGet(vId){ let obj = {}; obj = this.ruleForm.options2.find((item)=>{//this.ruleForm return item.id === vId;//筛选出匹配数据 }); console.log(obj.Name);//我这边的name就是对应label的 },
在data return里边定义
data(){ return{ ruleForm:{ options:[ {id:1,Name:'BEIJING'}, {id:2,Name:'TIANJIN'} ] } } }
以上这篇解决VUE项目使用Element-ui 下拉组件的验证失效问题就是长沙网络推广分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持狼蚁SEO。
编程语言
- 甘肃哪有关键词排名优化购买方式有哪些
- 甘肃SEO如何做网站优化
- 河南seo关键词优化怎么做电话营销
- 北京SEO优化如何做QQ群营销
- 来宾百度关键词排名:提升您网站曝光率的关键
- 卢龙关键词优化:提升您网站排名的策略与技巧
- 山东网站优化的注意事项有哪些
- 四川整站优化怎样提升在搜索引擎中的排名
- 疏附整站优化:提升网站性能与用户体验的全新
- 海南seo主要做什么工作售后服务要做到哪些
- 荣昌百度网站优化:提升您网站的搜索引擎排名
- 河北seo网站排名关键词优化如何做SEO
- 江西优化关键词排名推广售后保障一般有哪些
- 古浪SEO优化:提升你的网站可见性
- 西藏网站排名优化怎么把网站排名在百度首页
- 如何提升阳东百度快照排名:详尽指南