お世話になっております。
クライアントサイドでバリデーションを行う場合の方針について、お聞かせいただきたいです。
現在、RubyonRailsでWebアプリケーションを作っています。
その際、クライアントサイドのバリデーションはclient side validationのgemを利用しているのですが、このgemはfocusoutの時にバリデーションを行うため、初期表示で一番上のinputにfocusしている場合、キャンセルボタンを押下するとバリデーションが走ってしまいます。
これに違和感を覚えたので他のRails製Webサービスを見たのですが、処理がばらばら(のように見える)で結局のところどのようにするのがベストなのか、わからなくなってしまいました。
見たところ最初のblankの時はバリデーションが動かず、blank以外の何らかのバリデーションにひっかかった(inputに値が入ったまま抜けた)時初めてバリデーションが効き始める、というような挙動をするものが多少多かったように感じたのですが、これが一般的なのでしょうか?皆様はどうやっているのかお聞きしたいです。
また、これを実現する際、focusout時にval() !== ''
の場合コントロールにバリデーションをかける、もしくはあらかじめdata-flag
などを用意しておいて、バリデーションをかけ始める時にflagを1にしてflag === 1の時のみバリデーションをかける、などのようにしているのかなぁと思ったのですが、実際のところあれはどうやっているのでしょうか?
あなたの回答
tips
プレビュー