Vue と Element-UI を使用してフォームの複雑な検証ロジックを実装する方法

PHPz
リリース: 2023-07-22 08:15:27
オリジナル
1196 人が閲覧しました

Vue と Element-UI を使用してフォームの複雑な検証ロジックを実装する方法

はじめに:
Web アプリケーションの開発では、フォーム検証は頻繁に発生する要件です。フォーム検証により、ユーザーが入力したデータが特定の形式またはルールに準拠していることを確認できるため、データの精度とアプリケーションの安定性が向上します。この記事では、Vue と Element-UI を使用してフォームの複雑な検証ロジックを実装する方法を紹介し、関連するコード例を読者に提供します。

1. Element-UI の概要
Element-UI は、Vue.js をベースに開発されたデスクトップ コンポーネント ライブラリであり、テーブルやテーブルなどの一連の使いやすく美しい UI コンポーネントを提供します。フォーム、ボタンなどElement-UI にはフォーム検証機能が多数組み込まれており、簡単な検証ロジックを簡単に実装できます。

2. フォーム検証の基本原理
フォーム検証の基本原理は、フォーム要素の変更イベントを監視することでユーザーが入力した値を取得し、それを系列に従って検証することです。事前に設定されたルールの。検証に合格した場合、フォーム要素のステータスは「検証合格」に変更されます。検証に合格しなかった場合は、エラー メッセージが表示され、フォーム要素のステータスは「検証失敗」に変更されます。

3. 単純なフォーム検証に Element-UI を使用する
まず、Element-UI の Form コンポーネントと FormItem コンポーネントを導入し、次にこれらのコンポーネントを Vue テンプレートで使用してフォームを構築する必要があります。指定した form 要素で、次に示すように rules 属性を設定することで検証ルールを定義できます。


データ内のフォーム オブジェクトは、 form 各入力ボックスの値、および rules オブジェクトは各入力ボックスの検証ルールを定義します。

Vue のデータでは、次のようにフォーム オブジェクトとルール オブジェクトを定義できます:

data() {
return {

form: {
  username: '',
  password: ''
},
rules: {
  username: [
    { required: true, message: '请输入用户名', trigger: 'blur' },
    { min: 3, max: 10, message: '长度在3到10个字符', trigger: 'blur' }
  ],
  password: [
    { required: true, message: '请输入密码', trigger: 'blur' },
    { min: 6, max: 20, message: '长度在6到20个字符', trigger: 'blur' }
  ]
}
ログイン後にコピー

}
}
ルール オブジェクトでは、必須、長さ制限などの複数の検証ルールを定義できます。 message 属性はエラー メッセージを定義し、trigger 属性は検証によってトリガーされるイベントを定義します。

Vue のメソッドでは、フォームを検証するメソッド validateForm を定義できます。コードは次のとおりです:

methods: {
validateForm() {

this.$refs.myForm.validate((valid) => {
  if (valid) {
    this.$message({
      type: 'success',
      message: '表单校验通过'
    })
  } else {
    this.$message.error('表单校验失败')
    return false
  }
})
ログイン後にコピー

}
}
validateForm メソッドでは、this.$refs.myForm.validate() メソッドを呼び出してフォームの検証をトリガーします。検証結果はコールバック関数 valid を通して渡され、検証が成功した場合は成功メッセージが表示され、そうでない場合は失敗メッセージが表示されます。

4. 複雑な検証ロジックの実装
場合によっては、2 つの入力ボックスの値が等しいかどうかの比較、電子メール アドレスの検証、携帯電話の検証など、より複雑な検証ロジックを実装する必要があります。数字などこの場合、カスタム検証ルールを使用できます。

まず、Vue のデータで、以下に示すようにカスタム検証ルールを定義できます。

data() {
return {

rules: {
  email: [
    { required: true, message: '请输入邮箱地址', trigger: 'blur' },
    { type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }
  ],
  password: [
    { required: true, message: '请输入密码', trigger: 'blur' },
    { validator: this.validatePassword, trigger: 'blur' }
  ],
  confirmPassword: [
    { required: true, message: '请再次输入密码', trigger: 'blur' },
    { validator: this.validateConfirmPassword, trigger: 'blur' }
  ]
}
ログイン後にコピー

}
}
rules オブジェクトでは、カスタム検証ルールを定義できます。ここで、validator 属性は検証関数を定義します。

次に、Vue のメソッドで、以下に示すようにカスタム検証関数を定義できます。

methods: {
validatePassword(rule, value, callback) {

if (value.length < 6 || value.length > 20) {
  callback(new Error('密码长度在6到20个字符'))
} else {
  callback()
}
ログイン後にコピー

},
validateconfirmPassword(rule, value, callback) {

if (value !== this.form.password) {
  callback(new Error('两次输入的密码不一致'))
} else {
  callback()
}
ログイン後にコピー

}
}
カスタム検証関数では、コールバック関数 callback を呼び出して検証結果を渡すことができます。検証に合格した場合は callback() が呼び出され、そうでない場合は callback(new Error('error message')) が呼び出されます。

最後に、以下に示すように、Vue テンプレートでカスタム検証ルールを使用します。









カスタム検証ルールでは、type 属性を使用して、電子メール ルールなどの Element-UI の組み込み検証ルールを指定できます。 type 属性を「email」に設定します。

概要:
この記事では、Vue と Element-UI を使用してフォームの複雑な検証ロジックを実装する方法を紹介します。 Element-UI が提供する Form コンポーネントと FormItem コンポーネントを使用すると、フォームを簡単に構築し、 rules 属性を設定することで検証ルールを定義できます。複雑な検証ロジックの場合は、カスタム検証ルールと検証関数を実装できます。この記事が、皆様が Vue と Element-UI を理解してフォーム検証に使用するのに役立つことを願っています。

コード サンプル:
以下は完全なサンプル コードです:

<script><br>export default {<br> data() {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>return { form: { username: '', password: '' }, rules: { username: [ { required: true, message: '请输入用户名', trigger: 'blur' }, { min: 3, max: 10, message: '长度在3到10个字符', trigger: 'blur' } ], password: [ { required: true, message: '请输入密码', trigger: 'blur' }, { min: 6, max: 20, message: '长度在6到20个字符', trigger: 'blur' } ] } }</pre><div class="contentsignin">ログイン後にコピー</div></div><p>},<br> methods: {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>validateForm() { this.$refs.myForm.validate((valid) =&gt; { if (valid) { this.$message({ type: 'success', message: '表单校验通过' }) } else { this.$message.error('表单校验失败') return false } }) }</pre><div class="contentsignin">ログイン後にコピー</div></div><p>}<br>}<br></script>

以上就是使用Vue和Element-UI实现表单的复杂校验逻辑的一些简单介绍和代码示例。希望本文对于读者能够有所帮助,对于Vue和Element-UI有更深层次的理解和应用。谢谢阅读!

以上がVue と Element-UI を使用してフォームの複雑な検証ロジックを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!