“简单”jquery验证示例。难道我做错了什么?

时间:2011-06-17 13:37:43

标签: jquery jquery-plugins

正确的观点。有这种形式:

<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.validation之前包含Jquery。我已经用firebug验证了脚本是否被找到,而且我无法在firebug或Firefox错误控制台中看到任何错误。

EDIT2:

有趣的是,使用此代码替换$(“form”)。validate()似乎触发了验证,但同样,只验证了表单(name)中的第一个输入...

$(".submit").click(function (evt) {
    if ($("form#question").validate().form()) {
        alert("valid");
    }
});

3 个答案:

答案 0 :(得分:1)

您是否已加入jQuery Validation plugin

更新1

既然你说你已经包含了jQuery验证插件。那么,我唯一可以建议的是试试这个:

$(document).ready(function(){ $("#question").validate(); });

更新2

您应该在输入中添加minlengthmaxlength属性。验证不像魔术那样有效。它应该从某个地方获取要验证的属性。因此,例如,为minlength="2"输入元素添加Name

答案 1 :(得分:0)

您是否同时加载了jQuery和validate插件脚本?

如果你想要懒惰:

<script type="text/javascript" src="jquery-latest.min.js"></script>
<script type="text/javascript" src="jquery.validate.min.js"></script>

<强>更新

每个input值都需要与其关联的name=""。否则验证将无效。

答案 2 :(得分:0)

方法validate()未内置于JavaScript或jQuery中。您需要定义该方法,或者包括Shef提到的验证插件。

编辑:

适合我:http://jsfiddle.net/pdt6h/