vue中使用iview自定义验证关键词输入框问题及解决方法


Posted in Javascript onMarch 26, 2018

一、验证需求

     对应配置的关键词输入框,验证要求如下:

    1、总字数不能超过7000个;

    2、去除配置的关键词特殊符号,得到的关键词组数不能超过300;(如:aaa&(bbb|ccc)|(!ddd|eee)),去掉特殊符号,有5组)

    3、单个关键词长度不能超过20;(如:aaaaa&(bbb|ccc)),如果aaaaa长度超过20则提示)

vue中使用iview自定义验证关键词输入框问题及解决方法

二、解决方法

     在关键词输入对应的FormItem中加入一个prop属性,作为验证字段使用;注意该FormItem是包含于Form的;

vue中使用iview自定义验证关键词输入框问题及解决方法

form表单中添加rules验证

vue中使用iview自定义验证关键词输入框问题及解决方法

由于iview对空和总长度可以直接定义验证规则,所以这里就只自己写其余2个,代码如下:

//高级配置验证
validateAdvancedFormItem: {
 name: [
 {required: true, message: '任务名称不能为空', trigger: 'blur'},
 {type: 'string', max: 20, message: '不能超过20个字符', trigger: 'blur'},
 {validator: validNameExist, trigger: 'blur'}
 ],
 groupId: [
 {type: 'string', required: true, message: '请选择任务分组', trigger: 'change'}
 ],
 keywords: [
 {required: true, message: '关键词不能为空', trigger: 'blur'},
 {type: 'string', max: 7000, message: '不能超过7000个字符', trigger: 'blur'},
 {validator: validKeyWordsRule, trigger: 'blur'}
 ],
 /* chooseSiteGroupList: [//todo 暂时注释掉网站分组
  { required: true, type: 'array', min: 1, message: '请选择网站分组', trigger: 'change' },
 ],*/
 chooseInfoTypeList: [
 {required: true, type: 'array', min: 1, message: '请选择信息类型', trigger: 'change'},
 ],
 warnNum: [
 {required: true, message: '请填写预警增量'},
 ],
 warnUserList: [
 {required: true, type: 'array', message: '请选择预警人员', validator: validatewarnUser, trigger: 'change'},
 ],
},

自定义验证规则方法:

//验证高级配置关键词 规则
const validKeyWordsRule = (rule, value, callback) => {
 var isExceedTwitenty = this.getAdvancedKeyWords();
 var isExceedThreeHundreand = this.getAdvancedKeyWords();
 if(isExceedTwitenty == 1) {
 callback(new Error('配置单个关键词长度不能超过20'))
 } else if(isExceedThreeHundreand == 2) {
 callback(new Error('配置关键词个数不能超过300'))
 } else {
 callback();
 }
};
//处理关键词
getAdvancedKeyWords: function () {
 var flag = -1;
 if(this.dailyTaskItem.keywords != '' && this.dailyTaskItem.keywords.trim() != '') {
 //判断单个配置的关键词长度是否大于20
 var str = '';
 for (var i = 0; i < this.dailyTaskItem.keywords.length; i++) {
  str = str + this.dailyTaskItem.keywords.substr(i, 1).replace(/[\&|\||\!|\(|\)|\"]/, ' ');
 }
 var keywordArr = str.split(' ');
 var resultArr = [];
 for(var i in keywordArr) {
  if(keywordArr[i] != '') {
  resultArr.push(keywordArr[i])
  if(keywordArr[i].trim().length > 20) {
   flag = 1;
   break
  }
  }
 }
 //.关键词一共300个
 if(resultArr.length > 300) {
  flag = 2;
 }
 }
 return flag;
},

总结

以上所述是小编给大家介绍的vue中使用iview自定义验证关键词输入框问题及解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jquery select操作的日期联动实现代码
Dec 06 Javascript
jQuery 常见开发使用技巧总结
Dec 26 Javascript
Js如何判断客户端是PC还是手持设备简单分析
Nov 22 Javascript
js实现精美的图片跟随鼠标效果实例
May 16 Javascript
基于JavaScript实现仿京东图片轮播效果
Nov 06 Javascript
浅谈JavaScript中小数和大整数的精度丢失
May 31 Javascript
mpvue构建小程序的方法(步骤+地址)
May 22 Javascript
探秘vue-rx 2.0(推荐)
Sep 21 Javascript
JS中的算法与数据结构之队列(Queue)实例详解
Aug 20 Javascript
layui的select联动实现代码
Sep 28 Javascript
Vue实例的对象参数options的几个常用选项详解
Nov 08 Javascript
详解React中共享组件逻辑的三种方式
Feb 02 Javascript
Vue中v-show添加表达式的问题(判断是否显示)
Mar 26 #Javascript
使用Vue构建可重用的分页组件
Mar 26 #Javascript
基于jQuery实现Ajax验证用户名是否可用实例
Mar 25 #jQuery
jQuery实现的回车触发按钮事件功能示例
Mar 25 #jQuery
jQuery+Cookie实现切换皮肤功能【附源码下载】
Mar 25 #jQuery
Angular 组件之间的交互的示例代码
Mar 24 #Javascript
Vue中computed与methods的区别详解
Mar 24 #Javascript
You might like
预告映像公开!第1章续篇剧场版动画《Princess Principal Crown Handler》4月10日上映!
2020/03/06 日漫
PHP页面间传递参数实例代码
2008/06/05 PHP
php 如何获取数组第一个值
2013/08/06 PHP
php中实现xml与mysql数据相互转换的方法
2014/12/25 PHP
php对数组内元素进行随机调换的方法
2015/05/12 PHP
php实现登录tplink WR882N获取IP和重启的方法
2016/07/20 PHP
php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
2016/10/12 PHP
浅谈php调用python文件
2019/03/29 PHP
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
2020/04/13 PHP
Laravel6.18.19如何优雅的切换发件账户
2020/06/14 PHP
JQuery跨Iframe选择实现代码
2010/08/19 Javascript
NodeJS 模块开发及发布详解分享
2012/03/07 NodeJs
基于JQuery的模拟苹果桌面Dock效果(稳定版)
2012/10/15 Javascript
通过JQuery实现win8一样酷炫的动态磁贴效果(示例代码)
2013/07/13 Javascript
关于jquery的多个选择器的使用示例
2013/10/18 Javascript
JS图片切换的具体方法(带缩略图版)
2013/11/12 Javascript
jquery实现鼠标经过显示下划线的渐变下拉菜单效果代码
2015/08/24 Javascript
打字效果动画的4种实现方法(超简单)
2017/10/18 Javascript
微信小程序6位或多位验证码密码输入框功能的实现代码
2018/05/29 Javascript
vue实现form表单与table表格的数据关联功能示例
2019/01/29 Javascript
2019年度web前端面试题总结(主要为Vue面试题)
2020/01/12 Javascript
vue中实现点击空白区域关闭弹窗的两种方法
2020/12/30 Vue.js
[03:15]2014DOTA2国际邀请赛 专访国士无双信心满满
2014/07/12 DOTA
神经网络理论基础及Python实现详解
2017/12/15 Python
python中的字典操作及字典函数
2018/01/03 Python
python自动截取需要区域,进行图像识别的方法
2018/05/17 Python
浅谈python3中input输入的使用
2019/08/02 Python
python中web框架的自定义创建
2019/09/08 Python
Python退出时强制运行一段代码的实现方法
2020/04/29 Python
python requests.get带header
2020/05/05 Python
在keras里面实现计算f1-score的代码
2020/06/15 Python
HTML5自定义元素播放焦点图动画的实现
2019/09/25 HTML / CSS
工作失职检讨书(精华篇)
2014/10/15 职场文书
幼儿园端午节活动总结
2015/05/05 职场文书
演讲开场白和结束语
2015/05/29 职场文书
一文搞懂Java中的注解和反射
2022/06/21 Java/Android