【发布时间】:2011-06-17 22:14:58
【问题描述】:
切入正题。有这个表格:
<form action="/Home/AskQuestion" method="post" id="question">
<div class="name">
<label>Name</label><br>
<input type="text" class="name required">
</div>
<div class="email">
<label>Email</label><br>
<input type="text" class="email required">
</div>
<div class="subject clearleft"><label>Subject</label><br> <select name="GroupId" class="emailSubject required" id="SubmitAQuestionEmailSubject"><option value="0">Customer Service</option><option value="1">Parts Request</option><option value="2">Product Question</option><option value="3">GCRR</option></select></div>
<div class="question clearleft">
<label>Question</label><br>
<textarea cols="20" rows="2" class="required"></textarea>
</div>
<input type="submit" class="submit">
</form>
还有这段代码:
$(document).ready(function(){ $("form").validate(); });
谷歌搜索“jquery.validate 示例”给了我各种各样的“工作”示例,就像这样,如果任何 class="required" 字段为空白,这将阻止表单提交。 jquery 验证页面上的示例对我有用。
当我将“必填”输入留空时,我的表单仍会提交。我到底做错了什么?
编辑:以某种方式丢失了最初在这篇文章中的一些信息......
我同时包含 jquery (1.6.1) 和 jquery 验证(来自文件头的 1.6)脚本文件。 Jquery 包含在 jquery.validation 之前。我已经用 firebug 验证了正在找到脚本,并且在 firebug 或 Firefox 错误控制台中都看不到任何错误。
编辑2:
有趣的是,用此代码替换 $("form").validate() 似乎会触发验证,但同样,只有表单(名称)中的第一个输入被验证...
$(".submit").click(function (evt) {
if ($("form#question").validate().form()) {
alert("valid");
}
});
【问题讨论】:
-
表单上的输入缺少“名称”属性,这显然是验证工作所必需的。我添加了这些并且验证按预期工作。我知道我错过了一些简单的东西!
标签: jquery jquery-plugins