我正在使用Firefox / Firebug,尝试逐步执行一些jquery.validate()回调。
为什么点击提交按钮后,下面// Breakpoint
行的断点不会触发?
<!DOCTYPE html>
<head>
<script type="text/javascript" src="/library/scripts/lib/jquery-1.7.2.js"></script>
<script type="text/javascript" src="/Scripts/jquery.validate.js"></script>
<script type="text/javascript" src="/Scripts/jquery.validate.unobtrusive.js"></script>
</head>
<body>
<form action="/" method="post">
<input data-val="true" data-val-required="This is required" id="BirthDate"
name="BirthDate" type="text" value="" />
<span class="field-validation-valid" data-valmsg-for="BirthDate"
data-valmsg-replace="true"></span>
<p>
<input type="submit" /></p>
</form>
<script type="text/javascript">
$(document).ready(function () {
$('form').validate({
debug: true,
submitHandler: function () {
alert("Submitted!") // Breakpoint
},
invalidHandler: function (form, validator) {
alert("Invalid!") // Breakpoint
}
})
});
</script>
</body>
</html>
更新
实际上,似乎任何validate()选项都没有生效。例如,我在上面的示例中添加了debug: true
,并且根据文档它应该阻止提交表单,并且它仍在提交表单。没有任何警报被解雇。
但是,我已经确认调用了validate()函数,因为我可以逐步执行 - 只是不回调。
答案 0 :(得分:1)
不幸的是,jquery.validate()选项似乎不起作用when used in combination with unobtrusive validation。从我的文件中删除该引用可以解决问题,但当然会破坏我不引人注意的验证。
所以我最终使用another solution来挂钩验证事件。