Vue.jsを使用してWebフォームのバリデーションを実装する方法を学びましょう。このガイドでは、Element UIの<el-form>コンポーネントを活用して、簡潔かつ効果的なバリデーションの実装手法を解説します。バリデーションルールの定義、フォームコントロールのバインディング、エラーメッセージの表示など、重要なポイントを詳しく解説します。
<el-form>
は、Element UIライブラリに含まれるフォームコンポーネントで、バリデーション機能を提供しています。以下の手順に従ってバリデーションを実装できます。
- フォームデータを格納するための
data
オブジェクトを用意します。 - バリデーションルールを定義します。
<el-form>
コンポーネント内に、バリデーションを適用するフォーム項目(<el-form-item>
)とフォームコントロール(<el-input>
など)を配置します。<el-form>
コンポーネントに、model
属性でフォームデータをバインドし、rules
属性でバリデーションルールを指定します。- バリデーションをトリガーするためのメソッドを作成します。
以下に具体的なコード例を示します。
<template>
<el-form :model="form" :rules="validationRules" ref="form">
<el-form-item label="名前" prop="name">
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="年齢" prop="age">
<el-input-number v-model="form.age"></el-input-number>
</el-form-item>
<el-button type="primary" @click="submitForm">送信</el-button>
</el-form>
</template>
<script>
export default {
data() {
return {
form: {
name: '',
age: null
},
validationRules: {
name: [
{ required: true, message: '名前を入力してください', trigger: 'blur' }
],
age: [
{ required: true, message: '年齢を入力してください', trigger: 'blur' },
{ type: 'number', message: '有効な数字を入力してください', trigger: 'blur' }
]
}
};
},
methods: {
submitForm() {
this.$refs.form.validate((valid) => {
if (valid) {
// バリデーション成功時の処理
console.log('バリデーション成功');
} else {
// バリデーション失敗時の処理
console.log('バリデーション失敗');
}
});
}
}
};
</script>
この例では、<el-form>
内に<el-form-item>
と<el-input>
を配置し、v-model
ディレクティブでフォームデータとバインドしています。validationRules
オブジェクトで各項目のバリデーションルールを定義し、prop
属性でバリデーションを指定しています。
submitForm
メソッドでは、this.$refs.form.validate
メソッドを使用してフォームのバリデーションを実行しています。このメソッドは、バリデーションの結果をコールバック関数の引数として受け取ります。
バリデーションの結果(valid
)がtrue
の場合は、バリデーションが成功したことを意味します。その場合は、適切な処理を行います(上記の例では、console.log
で成功メッセージを表示しています)。
一方、バリデーションの結果がfalse
の場合は、バリデーションに失敗したことを意味します。失敗した場合は、エラーメッセージの表示や追加の処理を行うことができます(上記の例では、console.log
で失敗メッセージを表示しています)。
このようにして、<el-form>
を使用してVue.jsでバリデーションを実装することができます。<el-form>
は便利なバリデーション機能を提供し、簡潔で使いやすいコードを記述することができます。