我最近意识到我的一个页面不包含:$(“#form1”)。validate();调用,但页面在'required'字段上进行jquery验证。
我的页面底部有代码:
<script type="text/javascript">
var originalDoPostBack = __doPostBack;
__doPostBack = function(sender, args) {
if ($("#form1").valid() === true) {
originalDoPostBack(sender, args);
}
};
</script>
我的测试和查看来源似乎我不需要 $(“#form1”)。validate()如果我有 $(“#form1”)。 ()即可。
这是对的吗?
答案 0 :(得分:2)
$.validate()
用于设置表单及其用于验证的字段。例如,设置规则,例如required
和email
,并定义要在错误上显示的消息。它还会附加到表单的submit
事件,以便在表单提交时自动调用$("form").valid()
。
示例:
$("form").validate({
rules: {
Username: { required: true, email: true },
Password: { required: true }
},
messages: {
Username: {
required: "Please enter your username",
email: "Please enter a valid username"
},
Password: "Please enter your password"
}
});
<form>
<input type="text" id="Username" name="Username" />
<input type="text" id="Password" name="Password" />
</form>
或者,您可以使用规则类,以及错误消息字段的title
属性。使用此方法,您需要在提交表单时手动调用$("form").valid()
。
$("form").submit(function() {
return $(this).valid();
});
<form>
<input type="text" id="Username" name="Username" class="required email" title="Please enter your username" />
<input type="text" id="Password" name="Password" class="required" title="Please enter your password" />
</form>
值得注意的是,第一种方法可以让您更好地控制表单的外观和设置,同时也是IMO关注点的更好分离。后者的唯一好处是简洁。