包装フォームバリデーションVUE + elementui

簡単です:ステップ1:ページを書くための最初の要素、ステップ2.ルールの検証はカスタムJS 3.検証をカプセル化し、対応するカスタム検証メソッドを導入し、カスタム認証が必要です。

書き込み1.第1の構造。

注:そこから形状モデル(バンドルデータ)、REF(提出有用)、ルール(フォームの検証ルール)に、これらの3つが不可欠です。

2.コード:

  <EL-形式:モデル= "ruleForm":ルール= "ルール" REF = "ruleForm" ラベル幅= "100pxに" クラス= "デモ-ruleForm">
            <エル・フォーム・アイテム・ラベル=「イベント名」小道具=「名前」>
                <EL-入力V-モデル= "ruleForm.name" MAXLENGTH = "10" タイプ= "テキスト"> </ EL-入力>
            </ EL-フォーム項目>
             <エルフォーム項目ラベル=「電話番号」プロップ=「電話」>
                <EL-入力Vモデル= "ruleForm.phone" タイプ= "番号" MAXLENGTH = 11> </ EL-入力>
            </ EL-フォーム項目>
            <エルフォーム項目ラベル=「アクティブ領域」プロパ=「領域」>
                <V-モデル= "ruleForm.region" プレースホルダ= "アクティブ領域を選択し、" エル選択>
                <エル・オプションラベル= "区域一" 値= "上海"> </ EL-オプション>
                <エル・オプションラベル= "区域二" 値= "北京"> </ EL-オプション>
                </ EL-を選択>
            </ EL-フォーム項目>
            <EL-フォーム項目>
                提交</ EL-ボタン> <クリック= "submitForm( 'ruleForm')" @エル・ボタンタイプ= "主">
                <EL-ボタンをクリックする= "resetForm( 'ruleForm')" @>重置</ EL-ボタン>
            </ EL-フォーム項目>
        </ EL-形態>

 

3.data操作データ。

コード:

「../commonJs/common.js」からインポートフォーマット   
データ(){
    リターン{
        ruleForm:{
            名前: ''、
            電話: ''、
            地域: ''、
        
        }、
        ルール:{
            名前:[
            {
                バリ:. Format.FormValidate.Form()名、//バリ:カスタム検証ルール
                トリガー:「ぼかし」
            }
            ]、
            電話:[
            {
                バリ:。Format.FormValidate.Form()電話番号、
                トリガー:「ぼかし」
            }
            ]、
            地域:[
                {必須:○、メッセージ:「アクティブエリアを選択してください」、トリガー「変更」} //検証
            ]、
        }
    }。
}、

 

 

 

 

フォーム検証JSの4の調製(新JS)

(^ \ D {18} $)| |(^ \ D {17}(\ D | X | X)$)/ regId = /(^ \ D {15} $)させ
メール= /^(\w+\.?)*\w+@(?:\w+\.)\w+$/ // Eメールをしましょう
せTEL = / ^ 1 [345789] \ D {9} $ / //電話番号
let fax = /^(\d{3,4}-)?\d{7,8}$/    //传真
let name = /^[\u4E00-\u9FA5\uf900-\ufa2d·s]{2,10}$/;   //姓名
let FormValidate = (function () {
    // eslint-disable-next-line
    function FormValidate() {}
    // From表单验证规则  可用于公用的校验部分
    FormValidate.Form = function () {
        return {
            // 姓名的验证规则
            Name: function (rule, value, callback) {
                if (!value) {
                    return callback(new Error('姓名不能为空'))
                }
                if (!name.test(value)) {
                    callback(new Error('请输入正确姓名!'))
                } else {
                    callback()
                }
            },
            // 邮箱的正则
            Email: function (rule, value, callback) {
                if (!value) {
                    return callback(new Error('邮箱不能为空'))
                }
                if (!email.test(value)) {
                    callback(new Error('请输入正确的邮箱!'))
                } else {
                    callback()
                }
            },
            // 身份证的验证规则
            ID: function (rule, value, callback) {
                if (!value) {
                    return callback(new Error('身份证不能为空'))
                }
                if (!regId.test(value)) {
                    callback(new Error('请输入正确的二代身份证号码'))
                } else {
                    callback()
                }
            },
            // 电话号码的验证
            Tel: (rule, value, callback) => {
                if (!value) {
                    return callback(new Error('电话不能为空'))
                }
                if (!tel.test(value)) {
                    callback(new Error('请正确填写电话号码'))
                } else {
                    callback()
                }
            }
        }
    }
   
    // FromOne表单验证规则  用于FromOne个性化的校验
    FormValidate.FormOne = function () {
        return {
            // 姓名的验证规则
            Name: function (rule, value, callback) {
                if (!value) {
                    return callback(new Error('姓名不能为空'))
                }
                if (!name.test(value)) {
                    callback(new Error('请输入正确姓名!'))
                } else {
                    callback()
                }
            }
        }
    }
    return FormValidate
  }())
  exports.FormValidate = FormValidate
 

 

5.点击提交/重置事件

代码:

methods: {
    // 提交
    submitForm(formName) {
        this.$refs[formName].validate((valid) => {
          if (valid) {
            alert('submit!');
          } else {
            console.log('error submit!!');
            return false;
          }
        });
       
    },
    // 重置
    resetForm(formName) {
        this.$refs[formName].resetFields();
    }
},

 

 

6.demo展示

 

 

 

おすすめ

転載: www.cnblogs.com/hemei1212/p/12069241.html