Vue でフォーム フィールドを記述および検証する方法は多数あります。このブログでは、より一般的に使用される 3 つの検証方法を紹介します。 1. 検証用のデータを入力するフォームの内容 <!-- フォーム --> <el-form ref="rulesForm" :rules="formRules" :model="rulesForm" label-width="200px"> <el-form-item label="ユーザー名:" prop="userName"> <el-input v-model="rulesForm.userName" スタイル="幅:300px" 最大長さ="50"/> </el-form-item> </el-form>
データ データ() { 戻る { //他のデータ定義を省略します... // フォーム検証 formRules: { ユーザー名: [ {required: true、message: "ユーザー名を入力してください"、trigger: "blur"} ] } } }
2. インラインで書くフォームの内容 <!-- フォーム --> <el-form ref="rulesForm" :rules="formRules" :model="rulesForm" label-width="200px"> <el-form-item label="銀行名:" prop="accountName" :rules="[{required:true,message:'銀行名を入力してください',trigger:'blur'}]"> <el-input v-model="rulesForm.accountName" スタイル="幅:300px" 最大長さ="50"/> </el-form-item> </el-form>
データデータには内容がありません 3. 外部定義ルールのインポートフォームの内容 <!-- フォーム --> <el-form ref="rulesForm" :rules="formRules" :model="rulesForm" label-width="200px"> <el-form-item label="銀行カード番号:" prop="accountNumber"> <el-input v-model="rulesForm.accountNumber" スタイル="width:300px" 最大長さ="19"/> </el-form-item> </el-form> フォームの内容は最初の方法と一致しているため、ここでは詳細には触れません。 スクリプトの内容 <スクリプト> // 外部検証ルールの導入 import {validateAccountNumber} from "@/utils/validate"; // 銀行カードのアカウントが正しいかどうかを判定する const validatorAccountNumber = (rule, value, callback) => { if (!値) { return callback(new Error("アカウント情報を入力してください")); } それ以外 { if (validateAccountNumber(値)) { 折り返し電話(); } それ以外 { コールバックを返します(新しいエラー('アカウント形式が正しくありません')) } } }; エクスポートデフォルト{ データ() { 戻る { //他のデータ定義を省略します... // フォーム検証 formRules: { 口座番号: [ {必須: true、バリデータ: validatorAccountNumber、トリガー: "blur"} ] } } } } </スクリプト>
検証.js /* 銀行口座 */ エクスポート関数validateAccountNumber(str) { 定数reg = /^([1-9]{1})(\d{14}|\d{18})$/ reg.test(str) を返す }
上記はすべてフォーカスを失ったときの検証です。フォームが送信されたときの検証方法を分析してみましょう。 1. フォームの送信ボタン <!-- フォーム --> <el-form ref="rulesForm" :rules="formRules" :model="rulesForm" label-width="200px"> <el-form-item> <el-button type="primary" @click="onSubmit('rulesForm')">保存</el-button> <el-button @click="cancel">キャンセル</el-button> </el-form-item> </el-form>
2. 方法 メソッド: { // 保存 onSubmit(formName) { this.$refs[formName].validate(valid => { (有効)の場合{ console.log("送信成功!!"); }それ以外{ console.log("送信エラー!!"); } }); }, // キャンセル cancel() { } } this.$refs[formName].validate: formNameは渡された「rulesForm」であり、<el-form>フォームのrel属性値と一致しているため、検証が必要なフォームが指定されます。 完全なサンプルコードは次のとおりです。 1. ルール <テンプレート> <div class="アプリコンテナ"> <el-tabs v-model="アクティブ名"> <el-tab-pane label="フォーム" name="rulesPane" @tab-click="handleClick"> <!-- フォーム --> <el-form ref="rulesForm" :rules="formRules" :model="rulesForm" label-width="200px"> <el-form-item label="ユーザー名:" prop="userName"> <el-input v-model="rulesForm.userName" スタイル="幅:300px" 最大長さ="50"/> </el-form-item> <el-form-item label="銀行名:" prop="accountName" :rules="[{required:true,message:'銀行名を入力してください',trigger:'blur'}]"> <el-input v-model="rulesForm.accountName" スタイル="幅:300px" 最大長さ="50"/> </el-form-item> <el-form-item label="銀行カード番号:" prop="accountNumber"> <el-input v-model="rulesForm.accountNumber" スタイル="width:300px" 最大長さ="50"/> </el-form-item> <el-form-item> <el-button type="primary" @click="onSubmit('rulesForm')">保存</el-button> <el-button @click="cancel">キャンセル</el-button> </el-form-item> </el-form> </el-tab-pane> </el-tabs> </div> </テンプレート> <スクリプト> 「@/utils/validate」から{validateAccountNumber}をインポートします。 // 銀行カードのアカウントが正しいかどうかを判定する const validatorAccountNumber = (rule, value, callback) => { if (!値) { return callback(new Error("アカウント情報を入力してください")); } それ以外 { if (validateAccountNumber(値)) { 折り返し電話(); } それ以外 { コールバックを返します(新しいエラー('アカウント形式が正しくありません')) } } }; エクスポートデフォルト{ 名前: 「ルール」、 データ() { 戻る { アクティブ名: "rulesPane", デフォルトプロパティ: { 子供: 「子供」、 ラベル: "ラベル" }, ルールフォーム: { }, // フォーム検証 formRules: { ユーザー名: [ { 必須: true、 メッセージ:「ユーザー名を入力してください」 トリガー: 「ぼかし」 } ]、 口座番号: [ { 必須: true、 バリデーター: validatorAccountNumber、 トリガー: 「ぼかし」 } ]、 } }; }, 作成された() {}, マウント() {}, メソッド: { ハンドルクリック(タブ) { }, // キャンセル cancel() { }, // 保存 onSubmit(formName) { this.$refs[formName].validate(valid => { (有効)の場合{ console.log("送信成功!!"); } それ以外 { console.log("送信エラー!!"); false を返します。 } }); } } }; </スクリプト> <スタイル lang="scss"> </スタイル> 2. 検証 /* 銀行口座 */ エクスポート関数validateAccountNumber(str) { 定数reg = /^([1-9]{1})(\d{14}|\d{18})$/ reg.test(str) を返す } レンダリング 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: IDEA を使用して Tomcat を設定し、JSP ファイルを作成する方法
>>: Linux のハードリンクとソフトリンクの原理と使用法の分析
簡単に言うと、今日は Gitlab-CI を使用してリモート サーバーに自動的にデプロイする方法につ...
1. インライン スタイル (<body></body> 内に配置されます)...
通常、国喪の日、大地震の日、清明節には、ウェブサイト全体を灰色にして、故人への哀悼の意を表します。そ...
これまで、CSS の背景の属性には、color、image、repeat、attachment、po...
正規表現を使用してIEブラウザのバージョンを判別するIEブラウザかどうか確認するif (docume...
目次1. 遅いところはどこですか? 2. 不要なデータをクエリしましたか? 1. 不要なレコードをク...
目次1. ダウンロード2. インストール3. my.ini ファイルを設定する(デフォルトのエンコー...
MySQL インストール ファイルには、msi 形式と zip 形式の 2 種類があります。クリック...
1. テストテーブルを作成する テーブル `mysql_genarate` を作成します ( `id...
目次01 InnoDBレプリカセットの紹介02 InnoDBレプリカセットの制限03 導入前に知って...
次のコードは、MySQL 5.7.22 バイナリ パッケージのインストール方法を紹介しています。具体...
目次解決策1: EUIの転送コンポーネントをコピーして変更し、プロジェクトディレクトリに導入する解決...
1. 要件:データベースのバックアップは、実稼働環境にとって特に重要です。データベースのバックアップ...
最近、小さなプログラムの開発を勉強して見直しており、学習結果のいくつかをメモしています。公式の We...
以下の HTML タグには、基本的に既存のタグがすべて含まれています。数分かけて 1 つずつ参照する...