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 相关文章推荐
jQuery 美元符冲突的解决方法
Mar 28 Javascript
javascript+xml实现简单图片轮换(只支持IE)
Dec 23 Javascript
jQuery Mobile的loading对话框显示/隐藏方法分享
Nov 26 Javascript
减少访问DOM的次数提升javascript性能
Feb 24 Javascript
深入理解jQuery之防止冒泡事件
May 24 Javascript
jQuery购物车插件jsorder用法(支持后台处理程序直接转换成DataTable处理)
Jun 08 Javascript
JS实用的带停顿的逐行文本循环滚动效果实例
Nov 23 Javascript
基于JavaScript实现窗口拖动效果
Jan 18 Javascript
vue教程之toast弹框全局调用示例详解
Aug 24 Javascript
AngularJS 控制器 controller的详解
Oct 17 Javascript
记一次react前端项目打包优化的方法
Mar 30 Javascript
详解ES6新增字符串扩张方法includes()、startsWith()、endsWith()
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
BBS(php &amp; mysql)完整版(八)
2006/10/09 PHP
WindowsXP中快速配置Apache+PHP5+Mysql
2008/06/05 PHP
php+html5基于websocket实现聊天室的方法
2015/07/17 PHP
详解WordPress中过滤链接与过滤SQL语句的方法
2015/12/18 PHP
PHP面向对象之工作单元(实例讲解)
2017/06/26 PHP
取选中的radio的值
2010/01/11 Javascript
jQuery(1.6.3) 中css方法对浮动的实现缺陷分析
2011/09/09 Javascript
用jquery实现输入框获取焦点消失文字
2013/04/27 Javascript
JS控制日期显示的小例子
2013/11/23 Javascript
javascript实现左右控制无缝滚动
2014/12/31 Javascript
jQuery插件Timelinr 实现时间轴特效
2015/10/04 Javascript
微信小程序 vidao实现视频播放和弹幕的功能
2016/11/02 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
2017/04/20 Javascript
React 高阶组件入门介绍
2018/01/11 Javascript
Express本地测试HTTPS的示例代码
2018/06/06 Javascript
webpack4 处理CSS的方法示例
2018/09/03 Javascript
微信小程序之裁剪图片成圆形的实现代码
2018/10/11 Javascript
微信小程序实现定位及到指定位置导航的示例代码
2019/08/20 Javascript
vue缓存之keep-alive的理解和应用详解
2020/11/02 Javascript
es5 类与es6中class的区别小结
2020/11/09 Javascript
[15:23]教你分分钟做大人:虚空假面
2014/10/30 DOTA
Python二叉树的定义及常用遍历算法分析
2017/11/24 Python
Python爬虫信息输入及页面的切换方法
2018/05/11 Python
解决sublime+python3无法输出中文的问题
2018/12/12 Python
python 产生token及token验证的方法
2018/12/26 Python
Django框架设置cookies与获取cookies操作详解
2019/05/27 Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
2019/10/25 Python
Pandas操作CSV文件的读写实现方法
2019/11/13 Python
Python faker生成器生成虚拟数据代码实例
2020/07/20 Python
《夜晚的实验》教学反思
2014/02/19 职场文书
干部考核评语
2014/04/29 职场文书
2014年信息宣传工作总结
2014/12/18 职场文书
社区党风廉政建设调研报告
2015/01/01 职场文书
2015年建筑工作总结报告
2015/05/04 职场文书
WordPress多语言翻译插件 - WPML使用教程
2021/04/01 PHP
windows server2008 开启端口的实现方法
2022/06/25 Servers