jquery 验证显示没有错误信息

jquery validation displays no error message

我正在尝试使用 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”。 有没有可能两者兼顾?

Just change one function, then your problem will resolve :-)

function submit() {
     if (!$("#paaForm").valid()){
         return false; 
      } 
      ...
      return true;
 }

您应该如下更改代码。您需要通过以下 jquery 插件授予显示错误消息的权限。默认验证集 debug: false。将其设置为 true.

$("#paaForm").validate(
   debug: true
});

这应该适合你。有关 jquery 验证的更多信息 click here。祝你好运!

仅供参考 - 如果您使用的是 Unobtrusive Validation 插件,那么它会自动构建 .validate() 方法。您不能简单地提供自己的 .validate() 实例,因为它将被忽略。该插件仅设计用于在任何特定表单上处理 .validate() 一次,并且始终忽略所有后续实例。