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 相关文章推荐
20条学习javascript的编程规范的建议
Nov 28 Javascript
js简单实现点击左右运动的方法
Apr 10 Javascript
Js和JQuery获取鼠标指针坐标的实现代码分享
May 25 Javascript
通过点击jqgrid表格弹出需要的表格数据
Dec 02 Javascript
javascript实现禁止复制网页内容汇总
Dec 30 Javascript
Bootstrap模态对话框的简单使用
Apr 29 Javascript
jQuery+PHP+Mysql实现抽奖程序
Apr 12 jQuery
微信小程序实现弹出菜单功能
Jun 12 Javascript
React之PureComponent的使用作用
Jul 10 Javascript
JavaScript函数的特性与应用实践深入详解
Dec 30 Javascript
vue表单中遍历表单操作按钮的显示隐藏示例
Oct 30 Javascript
原生js实现随机点餐效果
Dec 10 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的面试题集,附我的答案和分析(一)
2006/11/19 PHP
PHP可变函数的使用详解
2013/06/14 PHP
php+mysql查询优化简单实例
2015/01/13 PHP
php简单处理XML数据的方法示例
2017/05/19 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
实例讲解PHP表单
2020/06/10 PHP
js运动动画的八个知识点
2015/03/12 Javascript
AngularJS基础学习笔记之表达式
2015/05/10 Javascript
jQuery实现页面顶部显示的进度条效果完整实例
2015/12/09 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
vue自定义tap指令及tap事件的实现
2018/09/18 Javascript
Vue + Node.js + MongoDB图片上传组件实现图片预览和删除功能详解
2020/04/29 Javascript
[49:20]2014 DOTA2国际邀请赛中国区预选赛5.21 CIS VS TongFu
2014/05/22 DOTA
使用Python脚本生成随机IP的简单方法
2015/07/30 Python
python cx_Oracle模块的安装和使用详细介绍
2017/02/13 Python
python距离测量的方法
2018/03/06 Python
Python学习笔记之open()函数打开文件路径报错问题
2018/04/28 Python
数据清洗--DataFrame中的空值处理方法
2018/07/03 Python
Flask-Mail用法实例分析
2018/07/21 Python
Pandas之排序函数sort_values()的实现
2019/07/09 Python
使用Django搭建web服务器的例子(最最正确的方式)
2019/08/29 Python
tesserocr与pytesseract模块的使用方法解析
2019/08/30 Python
python 3.7.4 安装 opencv的教程
2019/10/10 Python
python被修饰的函数消失问题解决(基于wraps函数)
2019/11/04 Python
html5新增的属性和废除的属性简要概述
2013/02/20 HTML / CSS
大学生毕业自荐信
2013/10/10 职场文书
标准化管理实施方案
2014/02/25 职场文书
法律六进活动方案
2014/03/13 职场文书
党的群众路线教育实践活动总结报告
2014/04/28 职场文书
计生工作先进事迹
2014/08/15 职场文书
委托公证书样本
2015/01/23 职场文书
大学生入党群众意见书
2015/06/02 职场文书
助学金申请书该怎么写?
2019/07/16 职场文书
Python超简单容易上手的画图工具库推荐
2021/05/10 Python
小程序实现筛子抽奖
2021/05/26 Javascript
python对文档中元素删除,替换操作
2022/04/02 Python