与何时显示我的错误消息进行斗争。我的代码在下面,但基本上,表单应该验证 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);
}
然后这会调用一个函数来验证特定类型的输入字段(电子邮件、电话、alpha、dob 等),然后如果它未能通过 BLUR 的验证检查,它会将字段和标签着色为红色。
因此,如果有任何编码 if (!($(this).siblings('.help').click())) 类型事件的方法,那将很方便!
谢谢,凯文