element vue validate驗(yàn)證名稱重復(fù) 輸入框與后臺(tái)重復(fù)驗(yàn)證 特殊字符 字符長度 及注意事項(xiàng)小結(jié)【實(shí)例代碼】
具體代碼如下所示:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" 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; }, //驗(yàn)證字符串 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ù),請重新輸入")) } }) }, //驗(yàn)證字符串 validateFontSize(rule,value,callback){ if(value.length<30){ callback(); }else{ callback(new Error("字符串長度在1-30之間")) } }, //驗(yàn)證字符串 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) { //驗(yàn)證成功,提交 return true; } else { //驗(yàn)證失敗返回 return false; } ; }) }, }, }) </script> </body> </html>
下面看下vue-element 輸入框驗(yàn)證
1.控制輸入位數(shù)
限制輸入為10位,這種方式可以使輸入框中輸入10位后不能輸入后續(xù)內(nèi)容
因?yàn)閚umber輸入框自動(dòng)將最后一位小數(shù)點(diǎn)忽略不計(jì),因此“.”,"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ū)分不輸入的情況,故將提示信息合并為一個(gè)。
統(tǒng)一觸發(fā)方式為change
<el-form-item label="短信單價(jià):" 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.驗(yàn)證時(shí)間控件選擇的時(shí)間是否在某個(gè)范圍
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ā)送時(shí)間不能為空', trigger: 'blur'}, {validator:checkSendTime,trigger:'blur'} ]
總結(jié)
以上所述是小編給大家介紹的element vue validate驗(yàn)證名稱重復(fù) 輸入框與后臺(tái)重復(fù)驗(yàn)證 特殊字符 字符長度 及注意事項(xiàng)小結(jié)【實(shí)例代碼】,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
vue 實(shí)現(xiàn)滾動(dòng)到底部翻頁效果(pc端)
這篇文章主要介紹了pc端vue 滾動(dòng)到底部翻頁效果,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-07-07vue3.0+vue-router+element-plus初實(shí)踐
這篇文章主要介紹了vue3.0+vue-router+element-plus初實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12關(guān)于el-select組件設(shè)置默認(rèn)值的實(shí)現(xiàn)方式
這篇文章主要介紹了關(guān)于el-select組件設(shè)置默認(rèn)值的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09vue中使用refs定位dom出現(xiàn)undefined的解決方法
本篇文章主要介紹了vue中使用refs定位dom出現(xiàn)undefined的解決方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12利用FetchEventSource在大模型流式輸出的應(yīng)用方式
這篇文章主要介紹了利用FetchEventSource在大模型流式輸出的應(yīng)用方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08這15個(gè)Vue指令,讓你的項(xiàng)目開發(fā)爽到爆
這篇文章主要介紹了這15個(gè)Vue指令,讓你的項(xiàng)目開發(fā)爽到爆,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-10-10