解决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 相关文章推荐
JavaScript实现统计文本框Textarea字数增强用户体验
Dec 21 Javascript
详解JavaScript中的blink()方法的使用
Jun 08 Javascript
javascript实现倒计时(精确到秒)
Jun 26 Javascript
浅谈JavaScript中的字符编码转换问题
Jul 07 Javascript
实例讲解避免javascript冲突的方法
Jan 03 Javascript
Angularjs中的事件广播 —全面解析$broadcast,$emit,$on
May 17 Javascript
Js获取当前日期时间及格式化代码
Sep 17 Javascript
JavaScript中boolean类型之三种情景实例代码
Nov 21 Javascript
Vue项目引进ElementUI组件的方法
Nov 11 Javascript
微信小程序和H5页面间相互跳转代码实例
Sep 19 Javascript
JS访问对象两种方式区别解析
Aug 29 Javascript
JavaScript实现瀑布流布局的3种方式
Dec 27 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
关于文本留言本的分页代码
2006/10/09 PHP
合并ThinkPHP配置文件以消除代码冗余的实现方法
2014/07/22 PHP
php字符串替换函数substr_replace()用法实例
2015/03/17 PHP
php按单词截取字符串的方法
2015/04/07 PHP
Javascript中的var_dump函数实现代码
2009/09/07 Javascript
js下通过getList函数实现分页效果的代码
2010/09/17 Javascript
javascript 延迟加载技术(lazyload)简单实现
2011/01/17 Javascript
浅谈angularJS 作用域
2015/07/05 Javascript
JavaScript数组方法总结分析
2016/05/06 Javascript
javascript运算符语法全面概述
2016/07/14 Javascript
JavaScript利用正则表达式替换字符串中的内容
2016/12/12 Javascript
layui radio单选限制下一个radio单选的实例
2019/09/03 Javascript
vue实现登录拦截
2020/06/29 Javascript
[42:48]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第二场 12.11
2020/12/16 DOTA
Python实现简单多线程任务队列
2016/02/27 Python
python+opencv+caffe+摄像头做目标检测的实例代码
2018/08/03 Python
pandas进行时间数据的转换和计算时间差并提取年月日
2019/07/06 Python
python系列 文件操作的代码
2019/10/06 Python
Python Sympy计算梯度、散度和旋度的实例
2019/12/06 Python
利用OpenCV和Python实现查找图片差异
2019/12/19 Python
python mysql 字段与关键字冲突的解决方式
2020/03/02 Python
你需要学会的8个Python列表技巧
2020/06/24 Python
python打开文件的方式有哪些
2020/06/29 Python
tensorflow 大于某个值为1,小于为0的实例
2020/06/30 Python
使用keras实现非线性回归(两种加激活函数的方式)
2020/07/05 Python
Python Selenium实现无可视化界面过程解析
2020/08/25 Python
企业业务员岗位职责
2014/03/14 职场文书
车间主任岗位职责
2014/03/16 职场文书
给校长的建议书300字
2014/05/16 职场文书
道德演讲稿
2014/05/21 职场文书
档案接收函格式
2015/01/30 职场文书
生产现场禁烟通知
2015/04/23 职场文书
面试复试通知单
2015/04/24 职场文书
走进科学观后感
2015/06/18 职场文书
读《儒林外史》有感:少一些功利,多一些真诚
2020/01/19 职场文书
Mysql8.0递归查询的简单用法示例
2021/08/04 MySQL