我正在尝试使用 jquery 验证,但由于某种原因,即使我尝试遵循各种示例,也没有显示错误消息:
<form action="/" id="paaForm" method="post">
<input type="text" name="testMe" id="testMe" />
<button id="btnSubmit" type="button" value="Save" class="btn btn-default" />
jquery:
$(function () {
$("#paaForm").validate({
rules: {
testMe: {
required: true
},
...
$('#btnSubmit').on('click', submit);
...
function submit() {
if (!$("#paaForm").valid()) {
return;
}
...
编辑:
我必须添加更多信息。我的应用程序是一个 MVC 应用程序,因此它使用这样的捆绑:
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.validate*"));
这样,基于模型属性的 MVC 验证就可以完美运行。但我需要更复杂的验证,这就是为什么我添加了简单的 jquery 验证。正如我上面提到的,它不起作用。但如果我用这个代替捆绑,
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.validate.js"));
jquery 验证有效,但 MVC 验证不起作用,因为我排除了 “~/Scripts/jquery.validate.unobtrusive.js”。 可以两者兼得吗?
仅供参考 - 如果您使用 Unobtrusive Validation 插件,那么它会自动构造
.validate()
方法。您不能简单地提供自己的 .validate()
实例,因为它会被忽略。该插件仅设计用于在任何特定表单上处理 .validate()
一次,所有后续实例始终被忽略。
只要改变一个功能,问题就解决了:-)
function submit() {
if (!$("#paaForm").valid()){
return false;
}
...
return true;
}
您应该如下更改您的代码。您需要通过下面的 jquery 插件授予显示错误消息的访问权限。默认验证集
debug: false
。将其设置为 true
。
$("#paaForm").validate({
debug: true
});
这应该对你有用。有关 jquery 验证的更多信息单击此处。祝你好运!