亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

vue elementui form表單驗證的實現

2019-11-19 12:32:15
字體:
來源:轉載
供稿:網友

最近我們公司將前端框架由easyui 改為 vue+elementui 。自學vue兩周 就開始了爬坑之路。業余時間給大家分享一下心得,技術新手加上第一次分享(小激動),有什么不足的地方歡迎大家指正,多多交流才能共同進步!

1.問題 我們公司的項目比較大 表格 表單的頁面都不勝數 ,基于此封裝了一些 可復用的代碼。

2.分析  vue給了我們不一樣的前端代碼體驗  element ui 給我們一套功能強大的組件 減少了我們大量的開發時間 。雙劍合璧 天下無敵!  但每個公司的代碼風格不同  用戶的要求也比較刁端 ui團隊設計完美 我們怎樣才能用這個兩把劍闖出自己的江湖 就需要大家好好琢磨了。

廢話不多說!進入正題

form表單驗證規則的封裝

1.ellementui的處理    1. Form 組件上一次性傳遞所有的驗證規則  2 .單個的表單域上傳遞屬性的驗證規則 。

<el-form :model="dynamicValidateForm" ref="dynamicValidateForm" label-width="100px" class="demo-dynamic"> <el-form-item  prop="email"  label="郵箱"  :rules="[   { required: true, message: '請輸入郵箱地址', trigger: 'blur' },   { type: 'email', message: '請輸入正確的郵箱地址', trigger: 'blur,change' }  ]" > <el-input v-model="dynamicValidateForm.mobil"></el-input> </el-form-item> <el-form-item   label="姓名:"   prop="name"   :rules="[{ required: true, message: '請輸入姓名', trigger: 'blur' }]"> <el-input v-model="dynamicValidateForm.name"></el-input></el-form-item><el-form-item label="手機號:" prop="mobil"   :rules="filter_rules({required:true,type:'mobile'})">  <el-input v-model="dynamicValidateForm.mobil"></el-input></el-form-item></el-form>

觀察上面的代碼 有一個共性 單個的表單域上傳遞屬性的驗證規則 ,給rules 屬性一個數組

重點來了 19行代碼是什么意思????

這就是我們封裝的全局可復用的方法   傳入需要的參數,你就可以得到你想要的驗證規則 rules 數組

在我們的工具包建一個 js文件  我們的全局方法就有了

exports.install = function (Vue, options) {  Vue.prototype.filter_rules = function (item){        return [{},{}]       }  }

還要在main.js 中注冊

下面分享下我的js文件

import { validateMoneyNumber,qq,mobile,regexn,integer} from '@/utils/validate'exports.install = function (Vue, options) {      /**   * 注意: 定義type 規則時 不用做非空驗證    *    只需要傳入 required:true 即可   * */  /*保留兩位小數*/  const isvalidateMoney = (rule, value, callback) => {    if(value != null && value != "") {      if(!validateMoneyNumber(value)) {      callback(new Error('請輸入正確的數字,最多保留兩位小數!'))      } else {        callback()      }    }    else{      callback();    }  }  /*驗證QQ號碼*/  const isvalidateQQ= (rule, value, callback) => {        if(value != null && value != "") {      if(!qq(value)) {        callback(new Error('您輸入的QQ號不正確!'))      } else {        callback()      }    }    else{      callback();    }  }  /*驗證手機號*/    const isvalidateMobile= (rule, value, callback) => {        if(value != null && value != "") {      if(!mobile(value)) {        callback(new Error('您輸入的手機號不正確!'))      } else {        callback()      }    }    else{      callback();    }  }        /*含有非法字符(只能輸入字母、漢字)*/    const isvalidateRegexn= (rule, value, callback) => {        if(value != null && value != "") {      if(!regexn(value)) {        callback(new Error('含有非法字符(只能輸入字母、漢字)!'))      } else {        callback()      }    }    else{      callback();    }  }    /*請輸入正整數*/    const isvalidateInteger= (rule, value, callback) => {        if(value != null && value != "") {      if(!integer(value)) {        callback(new Error('請輸入正整數!'))      } else {        callback()      }    }    else{      callback();    }  }          /**   * 參數 item    * required true 必填項   * maxLength 字符串的最大長度   * min 和 max 必須同時給 min < max type=number   * type 手機號 mobile   *   郵箱  email   *   網址  url    *   各種自定義類型  定義在 src/utils/validate 中  持續添加中.......   * */    Vue.prototype.filter_rules = function (item){    let rules = [];    if(item.required){      rules.push({ required: true, message: '該輸入項為必填項!', trigger: 'blur' });    }    if(item.maxLength){      rules.push({ min:1,max:item.maxLength, message: '最多輸入'+item.maxLength+'個字符!', trigger: 'blur' })    }    if(item.min&&item.max){          rules.push({ min:item.min,max:item.max, message: '字符長度在'+item.min+'至'+item.max+'之間!', trigger: 'blur' })    }    if(item.type){      let type = item.type;      switch(type) {        case 'email':          rules.push({ type: 'email', message: '請輸入正確的郵箱地址', trigger: 'blur,change' });          break;        case 'qq':          rules.push( { validator: isvalidateQQ, trigger: 'blur,change' });          break;        case 'mobile':          rules.push( { validator: isvalidateMobile, trigger: 'blur,change' });          break;          case 'regexn':          rules.push( { validator: isvalidateRegexn, trigger: 'blur,change' });          break;          case 'integer':          rules.push( { validator: isvalidateInteger, trigger: 'blur,change' });          break;            default:          rule.push({});          break;      }    }           return rules;  };};

看明白了嗎  第一行  是引入各種正則表達式   然后自定義校驗規則    。  傳入你自定義的參數 就可以拿到你想要的規則   (很熟悉吧  參考 easyui 表單驗證)

下面是效果

ElementUi rules表單驗證

  • 可以在pattern中書寫正則,并且配合elementUI進行表單驗證。
  • pattern 屬性規定用于驗證輸入字段的模式。模式指的是正則表達式。
rules: {  name:[{    required: true,    message: '請輸入用戶名',    trigger: 'blur'    },{    min: 2,    max: 5,    message: '長度在 2 到 5 個字符'    },{    pattern: /^[/u4E00-/u9FA5]+$/,    message: '用戶名只能為中文'  }    //{ pattern:/^[a-zA-Z]w{1,4}$/, message: '以字母開頭,長度在2-5之間, 只能包含字符、數字和下劃線'}  ],  password: [{    required: true,    message: '請輸入密碼',    trigger: 'blur'  }, {    min: 6,    max: 30,    message: '長度在 6 到 30 個字符'  }, {    pattern: /^(/w){6,20}$/,    message: '只能輸入6-20個字母、數字、下劃線'  }],  mobile:[{     required: true,    message: '請輸入手機號碼',    trigger: 'blur'  },  {validator:function(rule,value,callback){      if(/^1[34578]/d{9}$/.test(value) == false){        callback(new Error("請輸入正確的手機號"));      }else{        callback();      }    }, trigger: 'blur'}  ],  //  pattern: /^1[34578]/d{9}$/, message: '目前只支持中國大陸的手機號碼' }  peopleID:[{    required: true,    message: '請輸入身份證ID',    trigger: 'blur'    },{      pattern:/(^/d{15}$)|(^/d{18}$)|(^/d{17}(/d|X|x)$)/, message: '你的身份證格式不正確'     }  ],  carId:[    {required: true, message: '請輸入車牌號', trigger: 'blur'},     {pattern:/(^[/u4E00-/u9FA5]{1}[A-Z0-9]{6}$)|(^[A-Z]{2}[A-Z0-9]{2}[A-Z0-9/u4E00-/u9FA5]{1}[A-Z0-9]{4}$)|(^[/u4E00-/u9FA5]{1}[A-Z0-9]{5}[掛學警軍港澳]{1}$)|(^[A-Z]{2}[0-9]{5}$)|(^(08|38){1}[A-Z0-9]{4}[A-Z0-9掛學警軍港澳]{1}$)/,     message: '常規格式:晉B12345'},  ],},

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久国产精品久久久| 国产在线视频2019最新视频| 亚洲成人久久电影| 中文字幕日韩高清| 日韩欧美中文字幕在线播放| 亚洲毛片在线看| 欧美在线视频a| 热门国产精品亚洲第一区在线| 国产亚洲欧洲在线| 成人激情视频在线观看| 亚洲成色777777在线观看影院| 成人av在线天堂| 91精品在线一区| 日韩成人av网| 中文字幕日韩在线观看| 国产精品成熟老女人| 精品亚洲一区二区三区四区五区| 亚洲美女免费精品视频在线观看| 2019中文字幕全在线观看| 精品国产成人av| 亚洲精品国产suv| 国产成人一区二区三区| 中文字幕欧美日韩| 38少妇精品导航| 久久偷看各类女兵18女厕嘘嘘| 久久久久久久国产| 麻豆成人在线看| 国产精品伦子伦免费视频| 国产网站欧美日韩免费精品在线观看| 亚洲国产精品人人爽夜夜爽| 亚洲精品自产拍| 国产日韩欧美在线视频观看| 自拍视频国产精品| 国产精品69久久久久| 激情av一区二区| 欧美性色视频在线| 精品日本美女福利在线观看| 国产成人精品视频在线观看| 亚洲精品在线不卡| 国产精品免费久久久久影院| 亚洲一区二区在线播放| 亚洲精品二三区| 欧美伊久线香蕉线新在线| 成人黄色影片在线| 国产精品 欧美在线| 亚洲人成在线播放| 91禁国产网站| 深夜精品寂寞黄网站在线观看| 欧美日韩一区二区在线播放| 欧美久久久精品| 亚洲情综合五月天| 成人写真视频福利网| 国产成人拍精品视频午夜网站| 亚洲免费视频观看| 日韩美女在线播放| 欧美一级在线亚洲天堂| 亚洲高清久久网| 在线播放国产一区二区三区| 成人免费自拍视频| 久久大大胆人体| 亚洲人成在线电影| 国产精品入口免费视| 日韩欧美亚洲国产一区| 国产免费一区二区三区在线能观看| 久久久成人的性感天堂| 欧美性生交大片免网| 久久久之久亚州精品露出| 国产精品流白浆视频| 亚洲午夜未满十八勿入免费观看全集| 日韩在线中文字幕| 在线精品视频视频中文字幕| 一区二区欧美亚洲| 亚洲色图综合网| 疯狂蹂躏欧美一区二区精品| 尤物九九久久国产精品的分类| www国产亚洲精品久久网站| 日韩电影中文字幕av| 欧美黑人xxxⅹ高潮交| 亚洲精品国产成人| 久久网福利资源网站| 国产福利精品av综合导导航| 精品国产精品自拍| 久久天天躁夜夜躁狠狠躁2022| 亚洲欧美国产精品| 久久精品一区中文字幕| 91夜夜未满十八勿入爽爽影院| 三级精品视频久久久久| 九九热精品在线| 国产精品久久91| 国产一区二区三区网站| 亚洲欧美自拍一区| 亚洲欧美另类在线观看| 欧美激情精品久久久久久| 久久亚洲欧美日韩精品专区| 久久69精品久久久久久久电影好| 国产精品自产拍在线观看| 亚洲欧洲国产精品| 欧美黑人性生活视频| 日本a级片电影一区二区| 欧美大片在线看| 青青草原成人在线视频| 亚洲欧洲日产国码av系列天堂| 日韩一区二区精品视频| 国产精品久久久| 97涩涩爰在线观看亚洲| 久久这里只有精品99| 亚洲 日韩 国产第一| 一区三区二区视频| 亚洲综合大片69999| 亚洲女人初尝黑人巨大| 成人免费网站在线观看| 欧洲精品久久久| 性色av一区二区三区红粉影视| 国产精品pans私拍| 亚洲天堂免费在线| 这里只有精品在线观看| 亚洲精品xxxx| 国产成人拍精品视频午夜网站| 国产精品自产拍在线观看中文| 精品福利樱桃av导航| 久久国产精品电影| 色在人av网站天堂精品| 国产精品免费观看在线| 久久露脸国产精品| 成人乱人伦精品视频在线观看| 久久久久久97| 2018国产精品视频| 精品亚洲va在线va天堂资源站| 亚洲免费av电影| 日韩中文字幕亚洲| 97精品一区二区三区| 欧美性xxxx极品hd欧美风情| 国产日本欧美一区二区三区在线| 亚洲白虎美女被爆操| 日韩a**中文字幕| 成人福利视频网| 日韩成人小视频| 欧美精品免费在线| 狠狠色狠色综合曰曰| 日本亚洲欧洲色α| 国产一区二区欧美日韩| 国产精品久久久久久久久久三级| 91久久精品一区| 中文字幕在线看视频国产欧美| 亚洲免费电影一区| 成人网页在线免费观看| 亚洲在线视频观看| 亚洲欧洲国产精品| www高清在线视频日韩欧美| 久久亚洲精品一区| 91精品免费视频| 国产小视频国产精品| 一个人看的www欧美| 麻豆成人在线看| 亚洲一区www| 国产久一一精品| 91精品视频在线免费观看| 91九色综合久久| 亚洲福利视频网| 久久精品国产免费观看| 另类图片亚洲另类| 欧美日本中文字幕| 九九热精品视频在线播放| 国产91精品在线播放|