Vue は、フル機能の Web アプリケーションを迅速に開発するのに役立つ多くの機能を提供する、非常に強力なフロントエンド フレームワークです。これには、ユーザーが入力したデータが合法で、有効で、期待どおりであることを保証する非常に重要な機能であるフォーム データ検証が含まれます。 Vue には、フォーム データ検証を実装するためのさまざまな方法がいくつか用意されており、この記事ではそのいくつかを詳しく紹介します。
Vue はいくつかの組み込み命令を受け入れ、テンプレート内で直接使用してフォームを検証できます。これには、v-model
、v-bind
、v-on
などのディレクティブが含まれます。これらの命令は、フォーム値を処理するときに Vue インスタンスのデータにバインドでき、また、他の命令と一緒に使用して、より複雑なフォーム検証を実装することもできます。
次の例は、v-model
および v-on
ディレクティブを使用して、フォーム入力ボックスの電子メール アドレスが有効かどうかを確認する方法を示しています。
<template> <div> <input v-model="email" @blur="validateEmail" type="email" name="email" required> <div v-if="validEmail === false">请输入一个有效的邮箱地址。</div> </div> </template> <script> export default { data() { // 初始值为空 return { email: '', validEmail: null }; }, methods: { validateEmail() { const reg = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$/; this.validEmail = reg.test(this.email); } } } </script>
この例では、validateEmail
メソッドの実行結果を追跡するために、属性 validEmail
を元のデータに追加しました。次に、入力ボックスの v-model
および v-on
ディレクティブと、フォーカスを失ったときにトリガーされる @blur
イベントをバインドします。 。 @blur
イベントでは、validateEmail()
メソッドが入力値を正規表現と比較し、一致する場合は、validEmail
プロパティを ## に設定します。 #true; それ以外の場合は、
false に設定されます。最後に、
v-if ディレクティブを使用してエラー メッセージを表示します。
required、
email、
min_length などの多くの検証ルールを提供する、テンプレート ベースのフォーム検証プラグインです。さらに、独自のビジネス ニーズに合わせてルールをカスタマイズできます。
<template> <div> <input v-model="email" name="email" v-validate="'required|email'"> <div v-show="errors.has('email')" class="text-danger">{{ errors.first('email') }}</div> </div> </template> <script> import { required, email } from 'vee-validate/dist/rules'; import { extend } from 'vee-validate'; import { ValidationProvider, ValidationObserver, localize } from 'vee-validate'; import zh_CN from 'vee-validate/dist/locale/zh_CN.json'; extend('required', required); extend('email', email); localize('zh_CN', zh_CN); export default { data() { return { email: '' }; }, components: { ValidationProvider, ValidationObserver } } </script>
v-validate 属性を追加しました。このディレクティブのパラメータは、
required や
email など、適用する検証ルールを指定します。ディレクティブに似たものを使用してカスタム ルールを構築することもできます。
<template> <div> <form @submit.prevent="handleSubmit"> <input type="text" v-model="username"> <button type="submit">提交</button> </form> </div> </template> <script> export default { data() { return { username: '' }; }, methods: { handleSubmit() { if (this.username === '') { alert('用户名不能为空!'); return; } alert('提交成功!'); } } } </script>
v-model を使用して、入力ボックスの値をコンポーネントの
にバインドします。ユーザー名属性。次に、
@submit.prevent を使用してフォームの送信イベントをリッスンし、データ検証のための
handleSubmit メソッドを実装します。このメソッドでは、最初にユーザー名が空かどうかを確認し、空の場合はユーザーにプロンプトを表示し、フォームが送信されないようにします。それ以外の場合は、成功メッセージが表示されます。
以上がVue でフォーム データ検証を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。