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实现列表自动循环滚动鼠标悬停时停止滚动
Sep 06 Javascript
js关于字符长度限制的问题示例探讨
Jan 24 Javascript
Javascript连接多个数组不用concat来解决
Mar 24 Javascript
node.js中的fs.writeFile方法使用说明
Dec 14 Javascript
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
Mar 28 Javascript
学习掌握JavaScript中this的使用技巧
Aug 29 Javascript
JavaScript cookie详解及简单实例应用
Dec 31 Javascript
JavaScript实现自定义媒体播放器方法介绍
Jan 03 Javascript
Vue 过滤器filters及基本用法
Dec 26 Javascript
JavaScript函数式编程(Functional Programming)组合函数(Composition)用法分析
May 22 Javascript
Layui数据表格 前后端json数据接收的方法
Sep 19 Javascript
深入理解javascript中的this
Feb 08 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实现定时生成HTML网站首页实例代码
2008/11/20 PHP
php中session过期时间设置及session回收机制介绍
2014/05/05 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
2014/06/09 PHP
PHP单链表的实现代码
2016/07/05 PHP
php根据用户名和手机号查询是否存在手机号码
2017/02/16 PHP
jquery实现网站超链接和图片提示效果
2013/03/21 Javascript
『jQuery』取指定url格式及分割函数应用
2013/04/22 Javascript
jQuery中contents()方法用法实例
2015/01/08 Javascript
莱鸟介绍javascript onclick事件
2016/01/06 Javascript
返回函数的JavaScript函数
2016/06/14 Javascript
JS实现title标题栏文字不间断滚动显示效果
2016/09/07 Javascript
JavaScript prototype属性详解
2016/10/25 Javascript
Bootstrap Table使用心得总结
2016/11/29 Javascript
jQuery使用Layer弹出层插件闪退问题
2016/12/22 Javascript
JS对象是否拥有某属性如何判断
2017/02/03 Javascript
通过源码分析Vue的双向数据绑定详解
2017/09/24 Javascript
JS解决position:sticky的兼容性问题的方法
2017/10/17 Javascript
详解AngularJS之$window窗口对象
2018/01/17 Javascript
Vue监听一个数组id是否与另一个数组id相同的方法
2018/09/26 Javascript
JavaScript中AOP的实现与应用
2019/05/06 Javascript
微信小程序页面传多个参数跳转页面的实现方法
2019/05/17 Javascript
[16:56]heroes英雄教学 司夜刺客
2014/09/18 DOTA
[00:36]DOTA2勇士令状莱恩声望物品——冥晶之厄展示
2018/05/25 DOTA
python持久性管理pickle模块详细介绍
2015/02/18 Python
pytorch之Resize()函数具体使用详解
2020/02/27 Python
jupyter lab文件导出/下载方式
2020/04/22 Python
Python爬虫获取页面所有URL链接过程详解
2020/06/04 Python
vivo智能手机官方商城:vivo
2016/09/22 全球购物
HTC VIVE美国官网:VR虚拟现实眼镜
2018/02/13 全球购物
世界排名第一的万圣节服装店:Spirit Halloween
2018/10/16 全球购物
学生爱国演讲稿
2014/01/14 职场文书
物控部经理职务说明书
2014/02/25 职场文书
法人授权委托书公证范本
2014/09/14 职场文书
学校2014重阳节活动策划方案
2014/09/16 职场文书
幼儿园见习总结
2015/06/23 职场文书
python 提取html文本的方法
2021/05/20 Python