element vue validate验证名称重复 输入框与后台重复验证 特殊字符 字符长度 及注意事项小结【实例代码】


Posted in Javascript onNovember 20, 2018

具体代码如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css" rel="external nofollow" >
</head>
<body >
<div id="app">
  <!--此处model的abc 要是下面input 绑定的对象名称, ref 要和提交按钮的submit参数 名称要一致-->
  <el-form size="mini" :model="abc" ref="validateRef">
    <!--此处的prop 和input 中abc的属性名称一致 -->
    <el-form-item label="你好" prop="hello" :rules="[{required: true,message:'请输入',trigger:'blur'}
                             ,{validator:validateCharacter,trigger:'blur'}
                             ,{validator:validateFontSize,trigger:'blur'}
                             ,{validator:validatePass,trigger:'blur'}]">
      <el-input type="text" v-model="abc.hello" placeholder="请输入..." clearable></el-input>
    </el-form-item>
  </el-form>
  <el-button @click="submit('validateRef')" type="primary" :loading="submitLoading">提交</el-button>
</div>
<!-- import Vue before Element -->
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<!-- import JavaScript -->
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
<script>
  var context=[[${#request.getContextPath()}]];
  var ArrayMap = new Vue({
    el: '#app',
    data: function () {
      return {
        abc: {
          hello: '',
        },
        submitLoading:false,
      }
    },
    methods: {
      //特殊字符过滤
      checkSpecificKey(str) {
        var specialKey = "[`~!#$^&*()=|{}':;',\\[\\].<>/?~!#¥……&*()——|{}【】‘;:”“'。,、?]‘'";
        for (var i = 0; i < str.length; i++) {
          if (specialKey.indexOf(str.substr(i, 1)) != -1) {
            return false;
          }
        }
        return true;
      },
      //验证字符串
      validatePass(rule,value,callback){
        var that=this;
        $.ajax({
          url:context+"/abc?name="+that.abc.hello,
          type:"GET",
          async:false,
          dataType:"json",
          contentType:"application/json;charset=UTF-8",
          data:{}
        }).done(function(resp){
          if(resp.data.isTrue){
            callback();
          }else{
            callback(new Error("名称重复,请重新输入"))
          }
        })
      },
      //验证字符串
      validateFontSize(rule,value,callback){
        if(value.length<30){
          callback();
        }else{
          callback(new Error("字符串长度在1-30之间"))
        }
      },
      //验证字符串
      validateCharacter(rule,value,callback){
        if(this.checkSpecificKey(value)){
          callback();
        }else{
          callback(new Error('请不要输入特殊字符:[`~!#$^&*()=|{}\':;\',\\[\\].<>/?~!#¥……&*()——|{}【】‘;:”“\'。,、?]‘\''))
        }
      },
      submit(data) {
        this.submitLoading=true,
        this.$refs[data].validate((valid) => {
          if (valid) {
            //验证成功,提交
            return true;
          } else {
            //验证失败返回
            return false;
          }
          ;
        })
      },
    },
  })
</script>
</body>
</html>

下面看下vue-element 输入框验证

1.控制输入位数

限制输入为10位,这种方式可以使输入框中输入10位后不能输入后续内容

因为number输入框自动将最后一位小数点忽略不计,因此“.”,"2.","3.3."这三种情况均为正确的输入

<el-form-item label="渠道:" prop="channelName">
 <el-input v-model="formData.channelName" :maxlength="10" placeholder="请输入渠道名称"></el-input>
</el-form-item>
rules:{
    channelName:[
     {required:true,message:'渠道名称不能为空',trigger:'change'},
    ],
 }

2.控制小数输入位数

input 设置类型为number,step控制步长,正则表达式匹配输入的格式必须为xxx.xxx.

注意,此种方法无法区分不输入的情况,故将提示信息合并为一个。

统一触发方式为change

<el-form-item label="短信单价:" prop="price" class="form-price">
  <el-input type="number" step="0.001" v-model="formData.price" placeholder="请输入"></el-input>
</el-form-item>
//js
  let checkPrice = (rule,value,callback)=>{
    if(value){
     let rgx = /^\d+(\.\d{1,3})?$/;
     if(value.match(rgx)==null){
      return callback(new Error('请检查输入格式,不能为空,且最多三位小数'))
     }else{
      callback();
     }
    }
   };
   rules:{
     price:[
      {required:true,message:'请检查输入格式,不能为空,且最多三位小数',trigger:'change'},
      {validator:checkPrice,trigger:'change'}
     ]
   },

3.验证时间控件选择的时间是否在某个范围

let checkSendTime = (rule, value, callback) => {
    let hour = value ? value.getHours() :0;
    if (value !== "") {
     if (hour < 8 || hour > 21) {
      return callback(new Error('请选择8:00~22:00之间发送'));
     } else {
      callback();
     }
    }
   };
   sendTime:[
      {type:'date',required: true, message: '发送时间不能为空', trigger: 'blur'},
      {validator:checkSendTime,trigger:'blur'}
     ]

总结

以上所述是小编给大家介绍的element vue validate验证名称重复 输入框与后台重复验证 特殊字符 字符长度 及注意事项小结【实例代码】,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js计算精度问题小结
Apr 22 Javascript
jQuery之日期选择器的深入解析
Jun 19 Javascript
QQ空间顶部折页撕开效果示例代码
Jun 15 Javascript
JavaScript中的Number数字类型学习笔记
May 26 Javascript
JS作为值的函数用法示例
Jun 20 Javascript
javascript使用递归算法求两个数字组合功能示例
Jan 03 Javascript
Angular下H5上传图片的方法(可多张上传)
Jan 09 Javascript
JavaScript下拉菜单功能实例代码
Mar 01 Javascript
bootstrap suggest搜索建议插件使用详解
Mar 25 Javascript
AngularJS中使用ngModal模态框实例
May 27 Javascript
vue translate peoject实现在线翻译功能【新手必看】
Jun 07 Javascript
Vue项目服务器部署之子目录部署方法
May 12 Javascript
jQuery 同时获取多个标签的指定内容并储存为数组
Nov 20 #jQuery
一步步教你利用Docker设置Node.js
Nov 20 #Javascript
JS滚轮控制图片缩放大小和拖动的实例代码
Nov 20 #Javascript
vue中的适配px2rem示例代码
Nov 19 #Javascript
JS监听事件的叠加和移除功能
Nov 19 #Javascript
微信小程序自定义弹窗wcPop插件
Nov 19 #Javascript
Vue.js 使用v-cloak后仍显示变量的解决方法
Nov 19 #Javascript
You might like
PHP 字符串操作入门教程
2006/12/06 PHP
php获取网页请求状态程序示例
2014/06/17 PHP
PHP实现简单搜歌的方法
2015/07/28 PHP
JavaScript入门教程(6) Window窗口对象
2009/01/31 Javascript
javaScript 简单验证代码(用户名,密码,邮箱)
2009/09/28 Javascript
firefox下frameset取不到值的解决方法
2010/09/06 Javascript
js静态方法与实例方法分析
2011/07/04 Javascript
Mac地址验证的javascript代码
2013/11/09 Javascript
jQuery 事件的命名空间简单了解
2013/11/22 Javascript
jQuery简易图片放大特效示例代码
2014/06/09 Javascript
网页禁用右键菜单和鼠标拖动选择方法小结
2015/02/25 Javascript
JavaScript基础之AJAX简单的小demo
2017/01/29 Javascript
es6+angular1.X+webpack 实现按路由功能打包项目的示例
2017/08/16 Javascript
用react-redux实现react组件之间数据共享的方法
2018/06/08 Javascript
使用Vue实现图片上传的三种方式
2018/07/17 Javascript
解决Angular4项目部署到服务器上刷新404的问题
2018/08/31 Javascript
vue的过滤器filter实例详解
2018/09/17 Javascript
Vant的安装和配合引入Vue.js项目里的方法步骤
2018/12/05 Javascript
JavaScript实现指定数量的并发限制的示例代码
2020/03/10 Javascript
javascript利用canvas实现鼠标拖拽功能
2020/07/23 Javascript
[02:42]完美大师赛主赛事淘汰赛第三日观众采访
2017/11/25 DOTA
[01:35:53]完美世界DOTA2联赛PWL S3 Magma vs GXR 第二场 12.13
2020/12/17 DOTA
Python 数据结构之堆栈实例代码
2017/01/22 Python
Python 基础之字符串string详解及实例
2017/04/01 Python
Python全排列操作实例分析
2018/07/24 Python
Python 利用scrapy爬虫通过短短50行代码下载整站短视频
2018/10/29 Python
Django 缓存配置Redis使用详解
2019/07/23 Python
python实现PID算法及测试的例子
2019/08/08 Python
深入了解Python在HDA中的应用
2019/09/05 Python
基于Python脚本实现邮件报警功能
2020/05/20 Python
HTML5+CSS3应用详解
2014/02/24 HTML / CSS
西安众合通用.net笔试题
2013/03/18 面试题
仓库主管的岗位职责
2013/12/04 职场文书
养殖行业的创业计划书
2014/01/05 职场文书
实习鉴定评语
2014/01/19 职场文书
pytorch分类模型绘制混淆矩阵以及可视化详解
2022/04/07 Python