我在带有文本区域的表单上使用jquery验证。表单中的html看起来像这样(其他字段验证罚款不包括在内):
<form id="contact" name="contact" action="/forms/contact_received.php" method="get">
<textarea name="message" cols="60" rows="10" value=""></textarea>
</form>
jquery脚本如下所示:
$("#contact").validate({
rules: {
name: "required",
email: {required: true, email: true},
subject: "required",
message: {required: true}
},
messages: {
name: "Enter your name",
email: {required: "Please enter a valid email address",minlength: "Please enter a valid email address"},
subject: "it's required",
message: "Please enter your message in the box above"
}
});
在Chrome中,当用户在此textarea为空时尝试提交时,会显示我的错误消息。
然后当用户在textarea中输入文本时,他被允许写一个字符(显示为红色“错误”文本,然后在第一个字符后变为黑色)然后错误消息消失,焦点在textarea丢失和textarea回到它的初始宽度。然后,用户必须再次单击该表单以输入其余评论。
如何在验证返回“true”后保持对textarea的关注?
答案 0 :(得分:0)
我想出来了。问题是我在sitewide css中设置了.error {display:block}。也许我应该删除这个但是有几个人在jquery论坛中遇到了同样的问题,因为这是一个合法的问题:
http://forum.jquery.com/topic/jquery-validate-in-chrome-field-loses-focus-on-unhighlight