Javascript 错误的jquery验证加上正确的验证会使chrome文本区域失去焦点

Javascript 错误的jquery验证加上正确的验证会使chrome文本区域失去焦点,javascript,jquery,validation,textarea,Javascript,Jquery,Validation,Textarea,我在带有文本区域的表单上使用jquery验证。表单中的html如下所示(不包括验证罚款的其他字段): 在Chrome中,当用户在文本区域为空时尝试提交时,会显示“我的错误消息” 然后,当用户在textarea中输入文本时,他被允许写入一个字符(显示为红色“错误”文本,然后在第一个字符后变为黑色),然后错误消息消失,对textarea的关注丢失,textarea返回到其初始宽度。然后,用户必须再次单击表单以输入其余的注释 如何使验证返回“true”后保持对文本区域的关注?我明白了这一点。问题是我在

我在带有文本区域的表单上使用jquery验证。表单中的html如下所示(不包括验证罚款的其他字段):

在Chrome中,当用户在文本区域为空时尝试提交时,会显示“我的错误消息”

然后,当用户在textarea中输入文本时,他被允许写入一个字符(显示为红色“错误”文本,然后在第一个字符后变为黑色),然后错误消息消失,对textarea的关注丢失,textarea返回到其初始宽度。然后,用户必须再次单击表单以输入其余的注释


如何使验证返回“true”后保持对文本区域的关注?

我明白了这一点。问题是我在站点范围的css中设置了.error{display:block}。也许我应该删除这个,但是有几个人在jquery论坛中遇到了与这里相同的问题,所以这是一个合法的问题:


false之后没有以下内容。完成:-)你之前的问题呢。我告诉过你把return设为false。你能用css类'required'而不是用js编写规则吗?这可能是一个解决办法。还有,为什么rules.message不是必需的?为什么rules.message是一个对象?也许把它改成字符串会有所不同。佐德我不明白你在最后一个问题上或这一个问题上的意思。其他jquery示例中没有一个像这样在脚本中放置return false,这都是由validate plugin处理的,不是吗?teddy,我尝试在CSS中而不是js规则中编写它,它做了同样的事情。至于规则/消息,在我将其复制到stackoverflow之前,我刚刚将其从字符串更改为对象,以查看它是否会更改任何内容。我不知道这是否算数。这是我的错误。如果我在这里做错事,请标记删除。
<form id="contact" name="contact" action="/forms/contact_received.php" method="get">
    <textarea name="message" cols="60" rows="10" value=""></textarea>
</form> 
$("#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"
    }
});