解决VUE项目使用Element-ui 下拉组件的验证失效问题


Posted in Javascript onNovember 07, 2020

问题描述:

在使用Element-ui组件做项目开发时候有可能会使用下拉框组件,如果下拉框组件的option选项是使用v-if指令遍历的,

这样也没有问题,但是如果加上multiple属性,也就是可以多选 就会出现下拉框验证时失效问题.

问题现象:

解决VUE项目使用Element-ui 下拉组件的验证失效问题

如图所示,明明已经选择了选项,可是验证还是为空,因此不能提交请求

解决思路:

如果说找遍组件里的方法都无法获得我们适合使用的,那就要动用原生基本功了

console.log一下v-model在此组件上绑定的属性,你发现你绑定的字符串(一般情况下都是String,这里就拿字符串举例说明)打印出来却是Array

所以如果验证必填的话我们就直接判断v-model在此组件上绑定的属性的length是否大于0就好了;其他要求的话可以留言

思路验证:

我有试验过在rules增加type: ‘test',表面上看起来是可以的,但是打开控制台,它已经报错了: Unkown rule type text,如下图:

解决VUE项目使用Element-ui 下拉组件的验证失效问题

竟然没有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="comName">
    <el-select v-model="ruleForm.comName" placeholder="请选择所属公司" @change="selectGet">
   <el-option v-for="item in ruleForm.options2" :key="item.id" :value="item.id" :label="item.comName"></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.comName);//我这边的name就是对应label的
},

在data return里边定义

data(){
  return{
    ruleForm:{
      options:[
        {id:1,comName:'BEIJING'},
        {id:2,comName:'TIANJIN'}
      ]
    }
  
  }
}

以上这篇解决VUE项目使用Element-ui 下拉组件的验证失效问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery判断小数点两位和自动删除小数两位后的数字
Mar 19 Javascript
jQuery瀑布流插件Wookmark使用实例
Apr 02 Javascript
JS实现随机乱撞彩色圆球特效的方法
May 05 Javascript
深入理解JavaScript的React框架的原理
Jul 02 Javascript
jquery实现可点击伸缩与展开的菜单效果代码
Aug 31 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
Mar 08 Javascript
Vue中的作用域CSS和CSS模块的区别
Oct 09 Javascript
js form表单input框限制20个字符,10个汉字代码实例
Apr 12 Javascript
Nuxt v-bind绑定img src不显示的解决
Dec 05 Javascript
原生JS与JQ获取元素的区别详解
Feb 13 Javascript
Vue.js仿Select下拉框效果
Feb 18 Javascript
js实现浏览器打印功能的示例代码
Jul 15 Javascript
详解datagrid使用方法(重要)
Nov 06 #Javascript
VUE异步更新DOM - 用$nextTick解决DOM视图的问题
Nov 06 #Javascript
nuxt.js服务端渲染中axios和proxy代理的配置操作
Nov 06 #Javascript
微信小程序开发数据缓存基础知识辨析及运用实例详解
Nov 06 #Javascript
nuxt 路由、过渡特效、中间件的实现代码
Nov 06 #Javascript
Nuxt的路由动画效果案例
Nov 06 #Javascript
微信小程序中target和currentTarget的区别小结
Nov 06 #Javascript
You might like
PHP生成带有雪花背景的验证码
2006/10/09 PHP
解析mysql left( right ) join使用on与where筛选的差异
2013/06/18 PHP
ThinkPHP3.1.3版本新特性概述
2014/06/19 PHP
php生成excel列名超过26列大于Z时的解决方法
2014/12/29 PHP
简介PHP的Yii框架中缓存的一些高级用法
2016/03/29 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
PHP var关键字相关原理及使用实例解析
2020/07/11 PHP
一个JavaScript继承的实现
2006/10/24 Javascript
javascripit实现密码强度检测代码分享
2013/12/12 Javascript
JQUERY 设置SELECT选中项代码
2014/02/07 Javascript
js实现的下拉框二级联动效果
2016/04/30 Javascript
JavaScript解析JSON格式数据的方法示例
2017/01/24 Javascript
JavaScript中清空数组的三种方式
2017/03/22 Javascript
React props和state属性的具体使用方法
2018/04/12 Javascript
使用webpack-dev-server处理跨域请求的方法
2018/04/18 Javascript
jQuery实现表单动态添加数据并提交的方法
2018/07/19 jQuery
解决vue2 在mounted函数无法获取prop中的变量问题
2018/11/15 Javascript
Vue CLI项目 axios模块前后端交互的使用(类似ajax提交)
2019/09/01 Javascript
在vue中高德地图引入和轨迹的绘制的实现
2019/10/11 Javascript
JS异步宏队列微队列原理详解
2020/09/09 Javascript
Python 可爱的大小写
2008/09/06 Python
使用Django的模版来配合字符串翻译工作
2015/07/27 Python
解决Python发送Http请求时,中文乱码的问题
2020/04/30 Python
如何在Python对Excel进行读取
2020/06/04 Python
Python getattr()函数使用方法代码实例
2020/08/10 Python
python中yield的用法详解
2021/01/13 Python
python正则表达式re.match()匹配多个字符方法的实现
2021/01/27 Python
39美元购买一副眼镜或太阳镜:39DollarGlasses.com
2018/06/17 全球购物
荷兰音乐会和音乐剧门票订购网站:Topticketshop
2019/08/27 全球购物
一月红领巾广播稿
2014/02/11 职场文书
高三毕业寄语
2014/04/10 职场文书
应急管理培训方案
2014/06/12 职场文书
2014年电信员工工作总结
2014/12/19 职场文书
公务员年度考核评语
2014/12/31 职场文书
2015年教学副校长工作总结
2015/07/22 职场文书
再读《皇帝的新衣》的读后感悟!
2019/08/07 职场文书