Vue ElementUI フォームのフォーム検証

Vue ElementUI フォームのフォーム検証

フォーム検証は、フロントエンド開発プロセスで最もよく使用される機能の 1 つです。私の個人的な仕事経験に基づいて、フォーム検証機能の基本的な使用方法をまとめ、説明します。

以下はフォームのデモです

el-form :model="dynamicValidateForm" ref="dynamicValidateForm" label-width="100px" class="demo-dynamic">
  <el-フォーム項目
    prop="メール"
    label="メールボックス"
    :ルール="[
      { 必須: true、メッセージ: 'メールアドレスを入力してください'、トリガー: 'blur' },
      { type: 'email'、message: '有効なメールアドレスを入力してください'、trigger: ['blur'、'change'] }
    ]"
  >
    <el-input v-model="dynamicValidateForm.email"></el-input>
  </el-form-item>
  <el-フォーム項目
    v-for="(domain, index) in dynamicValidateForm.domains"
    :label="'ドメイン名' + インデックス"
    :key="ドメイン.キー"
    :prop="'ドメイン' + インデックス + '.値'"
    :ルール="{
      必須: true、メッセージ: 'ドメイン名は空にできません'、トリガー: 'blur'
    }"
  >
    <el-input v-model="domain.value"></el-input><el-button @click.prevent="removeDomain(domain)">削除</el-button>
  </el-form-item>
  <el-form-item>
    <el-button type="primary" @click="submitForm('dynamicValidateForm')">送信</el-button>
    <el-button @click="addDomain">新しいドメイン名を追加</el-button>
    <el-button @click="resetForm('dynamicValidateForm')">リセット</el-button>
  </el-form-item>
</el-form>
<スクリプト>
  エクスポートデフォルト{
    データ() {
      戻る {
        動的検証フォーム: {
          ドメイン: [{
            価値: ''
          }],
          メールアドレス: ''
        }
      };
    },
    メソッド: {
      送信フォーム(フォーム名) {
        this.$refs[formName].validate((valid) => {
          (有効)の場合{
            alert('送信!');
          } それ以外 {
            console.log('送信エラー!!');
            false を返します。
          }
        });
      },
      resetForm(フォーム名) {
        this.$refs[フォーム名].resetFields();
      },
      ドメインを削除します(アイテム) {
        var インデックス = this.dynamicValidateForm.domains.indexOf(item)
        (インデックス!== -1)の場合{
          this.dynamicValidateForm.domains.splice(インデックス、1)
        }
      },
      ドメインを追加します(){
        this.dynamicValidateForm.domains.push({
          価値: ''、
          キー: Date.now()
        });
      }
    }
  }
</スクリプト> 

まず、el-formタグのいくつかの重要な属性について説明します。

  • ref:現在のフォームの一意の識別子
  • モデル:フォームにバインドされたオブジェクト
  • ルール:フィールド検証ルール

ルール フィールドは、各フィールドの特定の検証ルールを定義するために使用されます。使用方法については、冒頭のデモ例を参照してください。Required はフィールドが必須かどうかを示し、message は検証プロンプト、trigger は単一の検証トリガーです。validator フィールドを使用して検証ルールをカスタマイズすることもできます。validateProductName メソッドは、製品名の空チェックと長さチェックを実行します。すべての条件分岐はコールバックで処理する必要があることに注意してください。そうしないと、検証で例外が発生する可能性があります。

1. フォームをリセットする

これを実装するには、フォーム リセット メソッド this.$refs.dynamicValidateForm.resetFields() を呼び出します。

もちろん、datetimerange タイプの日付コントロールはこのメソッドを使用してリセットすることはできないため、バインドされたフィールドは手動でリセットする必要があります。

2. 確認プロンプトをクリアする

これを実装するには、メソッド this.$refs.dynamicValidateForm.clearValidate() を呼び出します。

単一のコントロールのプロンプトのみをクリアする必要がある場合は、コントロールに対応する prop 属性値をパラメーターとして渡すだけです。

もう 1 つの方法は、コントロールに対応する el-form-item タグに ref 属性値を追加し、clearValidate メソッドを呼び出すことです。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • vue+ElementUIはダイアログボックスを閉じ、検証をクリアし、フォーム操作をクリアします。
  • ElementUIはel-formフォームリセット機能ボタンを実装します
  • Vue+elementui ダイアログボックスのキャンセルフォーム検証リセットの例
  • vue+elementui (ダイアログボックスのフォームのリセットの問題)

<<:  MySQL 8.0.19 のインストールと設定方法のグラフィックチュートリアル

>>:  Docker を使用してエンタープライズレベルのカスタムイメージを構築する方法

推薦する

49 個の JavaScript のヒントとコツ

目次1. js整数の演算2. ネイティブアラートを書き換えてポップアップボックスの数を記録する3. ...

Vue はアップロードされた画像に透かしを追加する機能を実装します

この記事では、Vueでアップロードされた画像に透かしを追加する具体的な実装コードを参考までに共有しま...

JavaScriptオブジェクト指向について学ぼう

目次JavaScript プロトタイプチェーンオブジェクトプロトタイプトップレベルのプロトタイプOb...

TOM.COMのホームページリニューアルの経験

<br />何の警告もなく、cnBeta で TOM.COM の Web サイトが再設計...

エージェントを介したzabbix監視プロセスとポートの詳細なプロセス

環境の紹介オペレーティングシステム: Centos 7.4 Zabbix バージョン: zabbix...

MySQL パスワードに特殊文字が含まれている場合とコマンドラインからログインする場合

サーバーでは、データベースにすばやくログインするために、通常は mysql -hhost -uuse...

MySQL データ型の完全分析

データ型: 列に格納できるデータとそのデータが実際にどのように格納されるかを定義する基本ルール。デー...

TypeScript名前空間の説明

目次1. 定義と使用1.1 定義1.2 使用2. 複数のファイルに分割する3. エイリアス序文: T...

MySQLトリガーの使用と注意すべき点

目次トリガーについてトリガーの使用トリガーを作成するトリガーを表示トリガーの削除使用上の注意新旧の違...

mysqlにコメント情報を追加する実装

序文最近、MySQL に関するメモをいくつか尋ねる人がいたので、ブログ記事を書かなければなりません。...

Linux での Docker と portainer の設定方法

1.Docer CEをインストールして使用するこの記事では、CentOS 7 を例に Docker ...

CSS マージンの折りたたみの詳細な説明

前のこれは古くからある古典的な質問です。以前読者から質問があったので、ここでお答えします。簡単な例か...

JavaScriptを使用して独自のAjax関数を定義する

ネイティブJSによって開始されたネットワークリクエストは、クエリ文字列の形でサーバーに送信されるため...

Centos7でのパーティションのフォーマットとマウントの実装

Linux では、ハードディスクの追加やパーティションの再マウントといった状況に頻繁に遭遇します。こ...

win10にmysql 8.0.18-winx64をインストールする詳細な手順

1. まず公式ウェブサイトにアクセスしてMySQLインストールパッケージをダウンロードします参考: ...