✅
Vuetifyのv-checkboxで最低一つ選択必須にするバリデーションの実装
はじめに
Vuetify でフォームを作ったときに v-checkbox を使いました。
チェックボックスを最低 1 つ選択必須にするバリデーションを掛けようとしたときに苦戦しましたので、バリデーションの方法について書きます。
個人的にいまいちだった方法
stack overflow のHow to validate checkbox group with Vuetifyにあった回答を参考にして、バリデーションを作りました。
チェックボックスを1つも選択していないときに、エラーメッセージが全てのチェックボックスに表示されてしまいます。
見た目がいまいち…!エラーメッセージは1つだけにしたい…!
バリデーション実装その1
v-checkbox
のhide-details
を最後のチェックボックスのみfalse
(他はtrue
)にしています。
最後のチェックボックスかどうかの判断はisLastFruit
メソッドでしています。
この方法はシンプルですが、最後のチェックボックスがdisabled
になっている場合に、エラーメッセージの色が赤にならないのが微妙なポイントでした。(disabled
を使わない場合は、この方法が良さそうです。)
バリデーション実装その2
v-checkbox
のhide-details
をtrue
にして、チェックボックスのエラーメッセージを非表示にしています。
選択したチェックボックスの値を入れているselectedValues
が空のとき、v-show
で条件分岐してエラーメッセージが表示されるようにしています。
Discussion