温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

element vue validate验证名称重复的示例分析

发布时间:2021-07-22 11:19:31 来源:亿速云 阅读:542 作者:小新 栏目:web开发

小编给大家分享一下element vue validate验证名称重复的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

具体代码如下所示:

<!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验证名称重复的示例分析”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI