いくつかのフォームで日付の検証を実行しています。この検証には、日付が週末にならず、主要な休日にならず、現在の日付から少なくとも3営業日であることを確認することが含まれます。
私は現在、一度に1つずつエラーメッセージを表示しています。日付が週末の場合は、メッセージを停止して返します。週末ではなく休日の場合は、中止して返送いたします。など.
先日、いくつかの日付シナリオを一度に検証したWebサイトにアクセスして、メッセージを返しました。
私は誰もがこれらのエラーを表示するための最良の方法-一度に1つまたはいくつかの組み合わせ-が何を考えているのかと思っています。
一つずつ:
一斉に:
ユーザーが週末、休日、または明日を選択した場合:
「今から3営業日以上の日付を選択してください」
ユーザーが土曜日/日曜日または休日を選択した場合:
参考までに、特定の値の選択を許可しないだけでは、検証の必要性が排除されません。 忘れないでください、誰かがTamperIEやFiddlerのようなものを使用してフォームの投稿を操作する可能性があります!日付をグレー表示してもクライアント側の問題ですが、投稿後のフォーム値を処理するにはサーバー側の検証が必要です。
理想的には、#1と#2の提案の組み合わせが必要です。
Please select a date that doesn't fall on a weekend or a holiday and is at least 3 business days from now.
これが最良の選択肢である理由は、人があなたの隣に立っていた場合にこれがあなたが人に言うことだからです。エラーコピーまたは任意のマイクロコピーの良い目安は、最初に言うとおりに記述しますで、次に、使用しているモデルに適合させます。モデルは、ユーザーがフォームを操作するときに表示されるエラーメッセージであるため、この文を印刷するだけで完全に可能です。
難しい部分は、考えられるさまざまなエラーに対して文を動的にすることですが、何が問題になるか、フォームがどのような状態の組み合わせになるかを前もって知っていれば、それほど難しいことではありません。
今、あなたが取ることができる別のアプローチはこれらのエラーについてユーザーに伝える必要がある理由を自問するです。ユーザーが誤って入力する原因となっているフォームについてはどうですか?ビジネスロジックで許可されていないのに、なぜこれらの可能性を許可しているのですか?
ユーザーが使用できるコントロールを変更して、無効な状況を許可しないようにすることを検討できます。たとえば、日付の問題は、カレンダーコントロールを使用して簡単に修正できます。カレンダーコントロールでは、週末、休日、現在から3営業日後の日数を選択不可にすることができます。そうすれば、ユーザーはそもそもエラーメッセージに直面する必要がなくなります。カレンダーコントロールが特定の日を許可しない理由を、コピーを使用して明確に伝えることを忘れないでください。
すべての検証基準を一度に表示して、目に見えない基準を満たすまでフォームを送信し続けることの苛立ちを防ぎます。理想的には、日付が入力される前に表示されます
また、特にこのような複雑な基準の場合、どの基準がこのケースで失敗したのかを正確に明らかにできなかった基準を強調表示します。
そうは言っても、日付ピッカーを使用して入力を制限する方がより良い方法です。
より有益なエラーメッセージを表示します。
「日付は少なくとも3営業日後であり、休日や週末ではない。」
違反した関連条件を入れます太字。
日付ピッカーの使用を検討してください。それは彼らにとってはるかに簡単になります。無効な日付をグレー表示します。
2番目のオプションのバリエーションを検討してください:「日付は、休日ではなく、平日で、今から少なくとも3日後でなければなりません。新しい日付を選択してください。」情報がないために何度も失敗するのではなく、すべてのルールを前もってユーザーに伝える必要がありますが、「選択してください」を繰り返すと、複数のアクションを要求しているように見えます。
(個人的には、「正しい」言語をスキップする傾向があります。フォームを受け入れず、顕著なエラーを報告することで、すでに伝えたと思います。しかし、あなたはそれについて尋ねなかったので、パターンを回答に残しました。)