解决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 相关文章推荐
JXTree对象,读取外部xml文件数据,生成树的函数
Apr 02 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
Dec 04 Javascript
jquery选择器排除某个DOM元素的方法(实例演示)
Apr 25 Javascript
javascript实现PC网页里的拖拽效果
Mar 14 Javascript
javascript实现列表切换效果
May 02 Javascript
js动态获取子复选项并设计全选及提交的实现方法
Jun 24 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
Oct 28 Javascript
vue 动态改变静态图片以及请求网络图片的实现方法
Feb 07 Javascript
vue中动态设置meta标签和title标签的方法
Jul 11 Javascript
微信小程序时间标签和时间范围的联动效果
Feb 15 Javascript
Vue项目总结之webpack常规打包优化方案
Jun 06 Javascript
JavaScript中展开运算符及应用的实例代码
Jan 14 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 面向对象实现代码
2009/11/11 PHP
初学PHP的朋友 经常问的一些问题。不断更新
2011/08/11 PHP
php接口与接口引用的深入解析
2013/08/09 PHP
thinkPHP3.2简单实现文件上传的方法
2016/05/16 PHP
thinkphp中的url跳转用法分析
2016/07/12 PHP
PHP实现的装箱算法示例
2018/06/23 PHP
如何使用jquery动态加载js,css文件实现代码
2013/04/03 Javascript
文本框(input)获取焦点(onfocus)时样式改变的示例代码
2014/01/10 Javascript
轻松创建nodejs服务器(3):代码模块化
2014/12/18 NodeJs
JavaScript异步加载浅析
2014/12/28 Javascript
JS动态创建DOM元素的方法
2015/06/09 Javascript
jquery实现简单的banner轮播效果【实例】
2016/03/30 Javascript
jquery延迟对象解析
2016/10/26 Javascript
Servlet实现文件上传,可多文件上传示例
2016/12/05 Javascript
jQuery按需加载轮播图(web前端性能优化)
2017/02/17 Javascript
vue-router之nuxt动态路由设置的两种方法小结
2018/09/26 Javascript
JavaScript使用类似break机制中断forEach循环的方法
2018/11/13 Javascript
vue实现的双向数据绑定操作示例
2018/12/04 Javascript
微信小程序下拉框搜索功能的实现方法
2019/07/31 Javascript
Node.js系列之安装配置与基本使用(1)
2019/08/30 Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
2020/01/26 Javascript
python socket多线程通讯实例分析(聊天室)
2016/04/06 Python
python处理Excel xlrd的简单使用
2017/09/12 Python
使用python爬虫获取黄金价格的核心代码
2018/06/13 Python
TensorFlow2.1.0最新版本安装详细教程
2020/04/08 Python
KEEN美国官网:美国人气户外休闲鞋品牌
2021/03/09 全球购物
建筑工程管理专业自荐信范文
2013/12/28 职场文书
2014年基层党组织公开承诺书
2014/03/29 职场文书
创业女性典型材料
2014/05/02 职场文书
私人房屋买卖协议书
2014/10/04 职场文书
教师辞职信范文
2015/02/28 职场文书
建国大业观后感800字
2015/06/01 职场文书
微信小程序实现录音Record功能
2021/05/09 Javascript
MySQL学习必备条件查询数据
2022/03/25 MySQL
Redis 异步机制
2022/05/15 Redis
LyScript实现绕过反调试保护的示例详解
2022/08/14 Python