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 のハードリンクとソフトリンクの原理と使用法の分析
以下のコードをDreamweaverのコードエリアにコピーすると、プレビュー時に以下の画像が表示され...
XMeter API は、以下のサービスを含む、JMeter に基づくワンストップのオンライン イン...
MySQL による CPU 負荷の上昇今日の午後、MySQL によってサーバーの負荷が高くなる問題を...
現在、MySQL の最適化について学習しています。この記事では、データ型とスキーマの最適化について紹...
MySQL の行から列への操作いわゆる行から列への操作は、テーブルの行情報を列情報に変換することです...
1. MySQLをインストールする(1)ダウンロードしたMySQLの圧縮ファイルをMySQLをインス...
RedHat6.5インストールMySQL5.7チュートリアル共有、参考までに、具体的な内容は次のとお...
この記事では、MySQL 5.7.16 ZIPパッケージのインストールと設定のチュートリアルを参考ま...
1: syslog.conf の概要異なるタイプの Unix の場合、標準の UnixLog システ...
この記事では、Vueの具体的なコード例を参考までに紹介します。具体的な内容は以下のとおりです。 コー...
目次利点1: diffアルゴリズムの最適化利点2: ホイスト静的静的リフティング利点3: cache...
目次1. Tomcat の概念–1、サーバー–2、ウェブサーバー–3、Tomcatサーバー次にTom...
序文特に bash 環境では、スクリプトの実行方法によって結果が異なります。スクリプトを実行する方法...
軽量のオープンソース データベースである MySQL は、エンタープライズ レベルのアプリケーション...
序文WeChat アプレット開発 (ネイティブ wxml、wxcss) で、{{ }} 内で直接メソ...