【发布时间】:2011-06-01 19:19:35
【问题描述】:
我在带有文本区域的表单上使用 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回到它的初始宽度。然后用户必须再次单击表单才能输入评论的其余部分。
如何在验证返回“true”后保持对文本区域的关注?
【问题讨论】:
-
false 后没有后续。完成:-) 你之前的问题呢。我告诉过你把 return false。
-
可以用css类'required'代替js写规则吗?这可能是一种解决方法。另外,为什么不是 rules.message==='required'?为什么 rules.message 是一个对象?也许将其更改为字符串会有所不同。
-
zod 我不明白你在上一个问题或这个问题上的意思。其他 jquery 示例都没有像这样在脚本中返回 false,这都是由 validate 插件处理的,不是吗?
-
teddy,我尝试用 CSS 而不是 js 规则编写它,它做同样的事情。至于规则/消息,我刚刚将其从字符串更改为对象,以查看它是否会在将其复制到 stackoverflow 之前更改任何内容。
标签: javascript jquery validation textarea