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 陷阱 window全局对象
Nov 26 Javascript
javascript+iframe 实现无刷新载入整页的代码
Mar 17 Javascript
jQuery中对未来的元素绑定事件用bind、live or on
Apr 17 Javascript
Javscript调用iframe框架页面中函数的方法
Nov 01 Javascript
实现隔行换色效果的两种方式【实用】
Nov 27 Javascript
js将字符串中的每一个单词的首字母变为大写其余均为小写
Jan 05 Javascript
JS中的phototype详解
Feb 04 Javascript
如何用js判断dom是否有存在某class的值
Feb 13 Javascript
Angular实现一个简单的多选复选框的弹出框指令实例
Apr 25 Javascript
vue props 单项数据流实例分享
Feb 16 Javascript
vue项目打包后请求地址错误/打包后跨域操作
Nov 04 Javascript
Vue实现随机验证码功能
Dec 29 Vue.js
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 错误之引号中使用变量
2009/05/04 PHP
PHP框架Laravel的小技巧两则
2015/02/10 PHP
php实现递归与无限分类的方法
2015/02/16 PHP
PHP可变函数学习小结
2015/11/29 PHP
详谈PHP中的密码安全性Password Hashing
2017/02/04 PHP
PHP守护进程化在C和PHP环境下的实现
2017/11/21 PHP
PHP使用phpunit进行单元测试示例
2019/09/23 PHP
QQ登录简单实现代码
2021/03/09 Javascript
JavaScript delete 属性的使用
2009/10/08 Javascript
精通Javascript系列之数据类型 字符串
2011/06/08 Javascript
前台js调用后台方法示例
2013/12/02 Javascript
对比分析AngularJS中的$http.post与jQuery.post的区别
2015/02/27 Javascript
浅谈js中test()函数在正则中的使用
2016/08/19 Javascript
Ext JS 实现建议词模糊动态搜索功能
2017/05/13 Javascript
Nodejs搭建wss服务器教程
2017/05/24 NodeJs
Vue 组件间的样式冲突污染
2017/08/31 Javascript
Vue v2.5 调整和更新不完全问题
2017/10/24 Javascript
讲解vue-router之什么是动态路由
2018/05/28 Javascript
js中apply和call的理解与使用方法
2019/11/27 Javascript
js实现html滑动图片拼图验证
2020/06/24 Javascript
[47:20]DAC2018 4.4 淘汰赛 Optic vs Mineski 第一场
2018/04/05 DOTA
Python优先队列实现方法示例
2017/09/21 Python
基于Django的python验证码(实例讲解)
2017/10/23 Python
使用python实现男神女神颜值打分系统(推荐)
2019/10/31 Python
Python调用Windows命令打印文件
2020/02/07 Python
将python字符串转化成长表达式的函数eval实例
2020/05/11 Python
如何使用Python进行PDF图片识别OCR
2021/01/22 Python
简单介绍HTML5中audio标签的使用
2015/09/24 HTML / CSS
飞利浦法国官网:Philips法国
2019/07/10 全球购物
考博自荐信
2013/10/25 职场文书
文秘专业个人求职信
2013/12/22 职场文书
幼师求职自荐信
2014/05/31 职场文书
组织委员竞选稿
2015/11/21 职场文书
MySQL数字类型自增的坑
2021/05/07 MySQL
Go语言的协程上下文的几个方法和用法
2022/04/11 Golang
分享Python异步爬取知乎热榜
2022/04/12 Python