false jquery验证后跟真正的验证会使chrome文本区失去焦点

时间:2011-06-01 19:19:36

标签: javascript jquery validation textarea

我在带有文本区域的表单上使用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的关注?

1 个答案:

答案 0 :(得分:0)

我想出来了。问题是我在sitewide css中设置了.error {display:block}。也许我应该删除这个但是有几个人在jquery论坛中遇到了同样的问题,因为这是一个合法的问题:

http://forum.jquery.com/topic/jquery-validate-in-chrome-field-loses-focus-on-unhighlight