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 相关文章推荐
函数式 JavaScript(一)简介
Jul 07 Javascript
jQuery实现鼠标经过时出现隐藏层文字链接的方法
Oct 12 Javascript
九种原生js动画效果
Nov 11 Javascript
解析Node.js异常处理中domain模块的使用方法
Feb 16 Javascript
jQuery插件实现文字无缝向上滚动效果代码
Feb 25 Javascript
详解JavaScript中双等号引起的隐性类型转换
May 30 Javascript
jquery使用EasyUI Tree异步加载JSON数据(生成树)
Feb 11 Javascript
ES6新特性六:promise对象实例详解
Apr 21 Javascript
vue刷新页面时去闪烁提升用户体验效果的实现方法
Dec 10 Javascript
详解JS取出两个数组中的不同或相同元素
Mar 20 Javascript
在elementui中Notification组件添加点击事件实例
Nov 11 Javascript
如何利用React实现图片识别App
Feb 18 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
如何使用PHP批量去除文件UTF8 BOM信息
2013/08/05 PHP
php微信公众号js-sdk开发应用
2016/11/28 PHP
laravel框架实现去掉URL中index.php的方法
2019/10/12 PHP
让 JavaScript 轻松支持函数重载 (Part 2 - 实现)
2009/08/04 Javascript
jquery animate 动画效果使用说明
2009/11/04 Javascript
浅析JavaScript作用域链、执行上下文与闭包
2016/02/01 Javascript
Node.js 应用跑得更快 10 个技巧
2016/04/03 Javascript
基于jQuery制作小图标上下滑动特效
2017/01/18 Javascript
jQuery插件zTree实现删除树节点的方法示例
2017/03/08 Javascript
在页面中引入js的两种方法(推荐)
2017/08/29 Javascript
解决vue-router在同一个路由下切换,取不到变化的路由参数问题
2018/09/01 Javascript
微信小程序实现简单跑马灯效果
2020/05/26 Javascript
微信小程序rich-text富文本用法实例分析
2019/05/20 Javascript
[02:46]2014DOTA2国际邀请赛 选手为你解读比赛MVP充满梦想
2014/07/09 DOTA
[01:39]2014DOTA2国际邀请赛 Newbee经理CU专访队伍火力全开
2014/07/15 DOTA
python简单实现基于SSL的IRC bot实例
2015/06/15 Python
python编程开发之日期操作实例分析
2015/11/13 Python
pandas数据预处理之dataframe的groupby操作方法
2018/04/13 Python
PyQt5实现简易计算器
2020/05/30 Python
Python实现K折交叉验证法的方法步骤
2019/07/11 Python
django之使用celery-把耗时程序放到celery里面执行的方法
2019/07/12 Python
Python时间差中seconds和total_seconds的区别详解
2019/12/26 Python
使用TensorFlow搭建一个全连接神经网络教程
2020/02/06 Python
python将音频进行变速的操作方法
2020/04/08 Python
Python如何实现大型数组运算(使用NumPy)
2020/07/24 Python
记一次django内存异常排查及解决方法
2020/08/07 Python
世界上最大的皮肤科医生拥有和经营的美容网站:LovelySkin
2021/01/03 全球购物
如何写出高性能的JSP和Servlet
2013/01/22 面试题
学前教育专业毕业生自荐信
2013/10/03 职场文书
文秘人员工作职责
2014/01/31 职场文书
公交公司毕业生求职信
2014/02/15 职场文书
中班上学期幼儿评语
2014/04/30 职场文书
党的群众路线对照检查材料思想汇报(学校)
2014/10/04 职场文书
会计师事务所实习证明
2014/11/16 职场文书
2014年政教处工作总结
2014/12/20 职场文书
2016年“12.4”法制宣传日活动总结
2016/04/01 职场文书