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 相关文章推荐
JS图片根据鼠标滚动延时加载的实例代码
Jul 13 Javascript
JS刷新当前页面的几种方法总结
Dec 24 Javascript
js中的事件捕捉模型与冒泡模型实例分析
Jan 10 Javascript
JQuery核心函数是什么及使用方法介绍
May 03 Javascript
基于BootstrapValidator的Form表单验证(24)
Dec 12 Javascript
VUE使用vuex解决模块间传值问题的方法
Jun 01 Javascript
基于jquery日历价格、库存等设置插件
Jul 05 jQuery
web前端vue filter 过滤器
Jan 12 Javascript
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
Apr 08 Javascript
JavaScript使用indexOf()实现数组去重的方法分析
Sep 04 Javascript
js实现div色块碰撞
Jan 16 Javascript
Vue 样式切换及三元判断样式关联操作
Aug 09 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伪静态写法附代码
2008/06/20 PHP
支持中文的php加密解密类代码
2011/11/27 PHP
PHP实现的下载远程图片自定义函数分享
2015/01/28 PHP
javascript getElementsByClassName函数
2010/04/01 Javascript
使用dynatrace-ajax跟踪JavaScript的性能
2010/04/12 Javascript
javascript自执行函数之伪命名空间封装法
2010/12/25 Javascript
JavaScript对象之间的转换 jQuery对象和原声DOM
2011/03/07 Javascript
在JavaScript中监听IME键盘输入事件
2011/05/29 Javascript
dojo学习第一天 Tab选项卡 实现
2011/08/28 Javascript
html+javascript实现可拖动可提交的弹出层对话框效果
2013/08/05 Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
2013/11/25 Javascript
基于jquery固定于顶部的导航响应浏览器滚动条事件
2014/11/02 Javascript
Javascript快速排序算法详解
2014/12/03 Javascript
JavaScript实现twitter puddles算法实例
2014/12/06 Javascript
jquery判断单选按钮radio是否选中的方法
2015/05/05 Javascript
JS实现添加,替换,删除节点元素的方法
2016/06/30 Javascript
详解Weex基于Vue2.0开发模板搭建
2017/03/20 Javascript
js简单实现网页换肤功能
2017/04/07 Javascript
js数组方法reduce经典用法代码分享
2018/01/07 Javascript
Vue项目全局配置微信分享思路详解
2018/05/04 Javascript
在Python中用has_key()方法查找键是否存在的教程
2015/05/21 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
2017/04/11 Python
opencv实现图片模糊和锐化操作
2018/11/19 Python
Python+OpenCV采集本地摄像头的视频
2019/04/25 Python
Python二维码生成识别实例详解
2019/07/16 Python
在flask中使用python-dotenv+flask-cli自定义命令(推荐)
2020/01/05 Python
Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
2020/07/31 Python
利用CSS3的flexbox实现水平垂直居中与三列等高布局
2016/09/12 HTML / CSS
CSS 3.0 结合video视频实现的创意开幕效果
2020/06/01 HTML / CSS
英国太阳镜品牌:Taylor Morris Eyewear
2018/04/18 全球购物
波兰补充商店:Muscle Power
2018/10/29 全球购物
档案检查欢迎词
2014/01/13 职场文书
刑事辩护授权委托书
2014/09/13 职场文书
晚会闭幕词
2015/01/28 职场文书
学习焦裕禄观后感
2015/06/09 职场文书
5个pandas调用函数的方法让数据处理更加灵活自如
2022/04/24 Python