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 を使用してエンタープライズレベルのカスタムイメージを構築する方法

推薦する

MySQLの文字列インターセプト関連関数の概要

この記事では、MySQL の文字列インターセプト関連の機能を紹介します。具体的な内容は以下のとおりで...

iframe パラメータの説明と例

<iframe src=”test.jsp” width=”100″ height=”50″ ...

Windows で Mysql を起動したときに 1067 が表示される場合の解決策

数日前に仕事を始めて、Mysql をインストールしたところ、開くことができました。今日、会社に行った...

CentOS7.5にHarbor1.7をインストールして設定するプロセス全体

1. 必要なパッケージをダウンロードする wget -P /usr/local https://st...

JS はデータ URL をどのように理解するのでしょうか?

目次概要データ URL の使用を開始するデータURL構文複数言語の文字列のBase64エンコードとデ...

CSS 兄弟要素フローティング分析の概要

float:左/右/なし; 1. 同じレベルフローティング(1)ブロックレベル要素を同じ行に表示する...

魔法のMySQLデッドロックトラブルシューティング記録

背景MySQL のデッドロックについて言えば、私は以前 MySQL のロックに関する基本的な紹介記事...

デザイン理論:テキスト表現とユーザビリティ

<br />テキストデザインでは、通常、テキストのレイアウト、つまりテキストをより美しく...

MySQL公式パフォーマンステストツールmysqlslapの使い方の紹介

目次導入説明書実際の経験まとめ導入MySQL は最も人気のあるオープンソース データベースとして、さ...

Linuxオンラインソフトウェアgccをオンラインでインストールする方法

Linux オンラインインストール関連コマンド: yum install: すべてインストールyum...

LinuxサーバのSSHクラッキング防止方法(推奨)

1. Linuxサーバーは、/etc/hosts.denyを設定して、相手のIPがSSH経由でサー...

JavaScript は setTimeout を使用してカウントダウン効果を実現します

JavaScript ネイティブ コードの記述能力を高め、setTimeout() の使用を強化する...

MySQL の起動オプションとシステム変数の例の詳細な説明

目次ブートオプションコマンドラインパラメータの長い形式と短い形式設定ファイル構成グループシステム変数...

Vue ブラウザログアウトの実装例

目次1. beforeunload イベント2. アンロードイベント3. ソースコードプロジェクトの...

CSS3 はドラッグ可能なルービックキューブの 3D 効果を実現します

主に使用される知識ポイント: •css3 3D変換 •ネイティブjsマウスドラッグイベント•表示:グ...