ホームページ >ウェブフロントエンド >Vue.js >Vue と Element-UI を使用してフォームの複雑な検証ロジックを実装する方法

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

PHPz
PHPzオリジナル
2023-07-22 08:15:271292ブラウズ

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 属性を設定することで検証ルールを定義できます。

d477f9ce7bf77f53fbcf36bec1b69b7a
8ec0c4751f0bebda16bd8df47bbe1b9d

<el-form-item label="用户名" prop="username">
  <el-input v-model="form.username"></el-input>
</el-form-item>
<el-form-item label="密码" prop="password">
  <el-input type="password" v-model="form.password"></el-input>
</el-form-item>
<el-form-item>
  <el-button type="primary" @click="validateForm">提交</el-button>
</el-form-item>

ffdb25bf2f9d37a252c9d16e8e43c40c
21c97d3a051048b8e55e3c8f199a54b2
データ内のフォーム オブジェクトは、 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 テンプレートでカスタム検証ルールを使用します。

9044c39e07c5f7bfdbe139ba63ef273d3950f2ccdbe6d532f43d14c598b37daa
3d2371aff8fe724e1b7407502d150d7a
1072ec28b0363e41a2cf20b6e31f5514
d14f55b1fbdcd49efb36f7550b816c7a3950f2ccdbe6d532f43d14c598b37daa
3d2371aff8fe724e1b7407502d150d7a
2fbc9b4f023c7fd45ccd139201dee861
804c4a182670c10d020f5a7ce1546b35
3d2371aff8fe724e1b7407502d150d7a
カスタム検証ルールでは、type 属性を使用して、電子メール ルールなどの Element-UI の組み込み検証ルールを指定できます。 type 属性を「email」に設定します。

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

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

d477f9ce7bf77f53fbcf36bec1b69b7a
6c3e00bcd91503ed8220e472e968ae55

<el-form-item label="用户名" prop="username">
  <el-input v-model="form.username"></el-input>
</el-form-item>
<el-form-item label="密码" prop="password">
  <el-input type="password" v-model="form.password"></el-input>
</el-form-item>
<el-form-item>
  <el-button type="primary" @click="validateForm">提交</el-button>
</el-form-item>

ffdb25bf2f9d37a252c9d16e8e43c40c
21c97d3a051048b8e55e3c8f199a54b2

3f1c4e4b6b16bbbd69b2ee476dc4f83a
export default {
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' }
    ]
  }
}

},
methods: {

validateForm() {
  this.$refs.myForm.validate((valid) => {
    if (valid) {
      this.$message({
        type: 'success',
        message: '表单校验通过'
      })
    } else {
      this.$message.error('表单校验失败')
      return false
    }
  })
}

}
}
2cacc6d41bbb37262a98f745aa00fbf0

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

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。