elementvuevalidate驗證名稱重復(fù)的示例分析-創(chuàng)新互聯(lián)

小編給大家分享一下element vue validate驗證名稱重復(fù)的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

創(chuàng)新互聯(lián)建站于2013年創(chuàng)立,先為綏化等服務(wù)建站,綏化等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為綏化企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

具體代碼如下所示:

<!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參數(shù) 名稱要一致-->
  <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("名稱重復(fù),請重新輸入"))
          }
        })
      },
      //驗證字符串
      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.控制輸入位數(shù)

限制輸入為10位,這種方式可以使輸入框中輸入10位后不能輸入后續(xù)內(nèi)容

因為number輸入框自動將最后一位小數(shù)點忽略不計,因此“.”,"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.控制小數(shù)輸入位數(shù)

input 設(shè)置類型為number,step控制步長,正則表達(dá)式匹配輸入的格式必須為xxx.xxx.

注意,此種方法無法區(qū)分不輸入的情況,故將提示信息合并為一個。

統(tǒng)一觸發(fā)方式為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('請檢查輸入格式,不能為空,且最多三位小數(shù)'))
     }else{
      callback();
     }
    }
   };
   rules:{
     price:[
      {required:true,message:'請檢查輸入格式,不能為空,且最多三位小數(shù)',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之間發(fā)送'));
     } else {
      callback();
     }
    }
   };
   sendTime:[
      {type:'date',required: true, message: '發(fā)送時間不能為空', trigger: 'blur'},
      {validator:checkSendTime,trigger:'blur'}
     ]

看完了這篇文章,相信你對“element vue validate驗證名稱重復(fù)的示例分析”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

分享題目:elementvuevalidate驗證名稱重復(fù)的示例分析-創(chuàng)新互聯(lián)
當(dāng)前URL:http://muchs.cn/article28/cdjpcp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、網(wǎng)站制作移動網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、營銷型網(wǎng)站建設(shè)、域名注冊

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化