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(列表)的操作(取值/赋值)
Aug 06 Javascript
JavaScript中获取未知对象属性的代码
Apr 27 Javascript
JS多物体 任意值 链式 缓冲运动
Aug 10 Javascript
基于jQuery实现下拉收缩(展开与折叠)特效
Dec 25 Javascript
浅析JQuery UI Dialog的样式设置问题
Dec 18 Javascript
用队列模拟jquery的动画算法实例
Jan 20 Javascript
必备的JS调试技巧汇总
Jul 20 Javascript
原生js实现旋转木马轮播图效果
Feb 27 Javascript
AngularJS 单选框及多选框的双向动态绑定
Apr 20 Javascript
React中常见的动画实现的几种方式
Jan 10 Javascript
AngularJS基于http请求实现下载php生成的excel文件功能示例
Jan 23 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
Feb 21 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
如何批量替换相对地址为绝对地址(利用bat批处理实现)
2013/05/27 PHP
利用浏览器的Javascript控制台调试PHP程序
2014/01/08 PHP
php中出现空白页的原因及解决方法汇总
2014/07/08 PHP
php实现把url转换迅雷thunder资源下载地址的方法
2014/11/07 PHP
盘点PHP和ASP.NET的10大对比!
2015/12/24 PHP
PHP使用Redis替代文件存储Session的方法
2017/02/15 PHP
JQuery与iframe交互实现代码
2009/12/24 Javascript
jQuery Autocomplete自动完成插件
2010/07/17 Javascript
JS判断当前日期是否大于某个日期的实现代码
2012/09/02 Javascript
js实现广告漂浮效果的小例子
2013/07/02 Javascript
简约JS日历控件 实例代码
2013/07/12 Javascript
js判断浏览器类型为ie6时不执行
2014/06/15 Javascript
jQuery中element选择器用法实例
2014/12/29 Javascript
自定义函数实现IE7与IE8不兼容js中trim函数的问题
2015/02/03 Javascript
jQuery模拟新浪微博首页滚动效果的方法
2015/03/11 Javascript
Javascript的表单验证-提交表单
2016/03/18 Javascript
jquery checkbox无法用attr()二次勾选问题的解决方法
2016/07/22 Javascript
写一个移动端惯性滑动&amp;回弹Vue导航栏组件 ly-tab
2018/03/06 Javascript
微信小程序和百度的语音识别接口详解
2019/05/06 Javascript
javascript之分片上传,断点续传的实际项目实现详解
2019/09/05 Javascript
解决vue项目刷新后,导航菜单高亮显示的位置不对问题
2019/11/01 Javascript
[56:00]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第一局
2016/03/05 DOTA
Python类定义和类继承详解
2015/05/08 Python
使用Python向C语言的链接库传递数组、结构体、指针类型的数据
2019/01/29 Python
python自动发微信监控报警
2019/09/06 Python
python numpy生成等差数列、等比数列的实例
2020/02/25 Python
Kidsroom台湾:来自德国的婴儿用品
2017/12/11 全球购物
2014领导干部学习焦裕禄同志先进事迹思想汇报
2014/09/19 职场文书
交通违章检讨书
2014/09/21 职场文书
师德师风个人整改措施
2014/10/27 职场文书
2015年学校办公室主任工作总结
2015/07/20 职场文书
大学优秀学生主要事迹材料
2015/11/04 职场文书
文艺有韵味的诗句(生命类、亲情类...)
2019/07/11 职场文书
win10下go mod配置方式
2021/04/25 Golang
vue+spring boot实现校验码功能
2021/05/27 Vue.js
SpringBoot整合minio快速入门教程(代码示例)
2022/04/03 Java/Android