エラーメッセージを表示するタイミングとの戦い。私のコードは以下ですが、基本的にフォームは BLUR の入力フィールドを検証する必要があります。ほとんどの場合、これはかなり受け入れられます。
ただし、次にクリックするのがフィールドの横にあるヘルプ アイコンでない場合にのみ、検証がぼかしに表示されるようにする必要があります。
私のクライアントは、フィールドにタブで移動し、そのままにしてヘルプをクリックする (ぼかし機能をトリガーする) 場合、これは良いユーザー ジャーニーではないと言って戻ってきました。ヘルプをクリックすると、フィールドがフォーカスを失うため、実際に何も入力せずにユーザーにエラーメッセージが表示されます。
必須フィールドであるため、検証を試みる前にフィールドが空かどうかを確認できません。また、フィールドが空のままの場合にもエラーが表示される必要があります。
説明するのは少し難しいですが、うまくいけば大丈夫です。
HTML
<div class="question" id="PD_email">
<label>Email address</label>
<input class="v-middle jsValid_email" id="email" type="text" size="50" />
<label class="inline helpTrigger cursor">Why do we ask for this?</label>
<div class="hidden help rounded03 aboveTrigger" style="left:385px;" id="emailAddress_help">
HELP MESSAG IN HERE
</div>
<div class="error hidden">
ERROR MESSAGE IN HERE
</div>
</div>
<div class="question" id="PD_phone">
<label>Phone number</label>
<input class="v-middle jsValid_phone" id="phone" type="text" size="50" />
<label class="inline helpTrigger cursor">Why do we ask for this?</label>
<div class="hidden help rounded03 aboveTrigger" style="left:385px;" id="emailAddress_help">
HELP MESSAGE IN HERE
</div>
</div>
jQueryスクリプト
$('input').blur(function() {
if ($(this).hasClass('jsValid_email')){
if (($(this).val()=='') && ($(this).hasClass('jsOptional')))
{/* do nothing*/}
else {
email(this.id);
}
次に、特定のタイプの入力フィールド (email、phone、alpha、dob など) を検証する関数を呼び出し、BLUR の検証チェックに失敗すると、フィールドに色を付け、赤のラベルを付けます。
if (!($(this).siblings('.help').click())) タイプのイベントをコーディングする方法があれば、便利です!
ありがとう、ケビン