尝试在 jQuery 验证中执行自定义消息时出错

Getting error when trying to do the customized message in jQuery validate

我已经尝试过多次使用 JQuery 来使用自定义消息验证错误,但我仍然感到困惑的是,我在 mistake.I 的地方尝试了正常的验证消息,但是当我试过自定义的,它显示错误。

以下是我到目前为止尝试过但未成功执行的示例代码。

<form id="myform">
  <tr>
    <td class="alpha">username</td>
    <td>
      <input type="username" type="text" value="">
    </td>
  </tr>
  <br/>
  <tr>
    <td class="alpha">postcode</td>
    <td>
      <input type="postcode" type="text" value="">
    </td>
  </tr>
  <input type="submit" />
</form>
$.validator.setDefaults({
  submitHandler: function() {
    alert("submitted!");
  }
});

$document.ready(function() {
  $("#myform").validate({
    rules: {
      password: "required",
      postcode: {
        required: true,
        minlength: 3
      }
    },
    messages: {
      username: {
        required: "*Please enter a username",
        minlength: "Your username must consist of at least 2 characters"
      },
      postcode: {
        required: "Field PostCode is required",
        minlength: "Field PostCode must contain at least 3 characters"
      }
    }
  });
});

正如所写,您的代码也不适用于默认消息。

请阅读我在代码中的注释...

rules: {
    password: "required",  // <- input with name="password" (where is "password"?)
    postcode: {            // <- input with name="postcode"
        required: true,
        minlength: 3
    }
},
messages: {
    username: {     // <- input with name="username"
        required: "*Please enter a username",
        minlength: "Your username must consist of at least 2 characters"
    },
    postcode: {     // <- input with name="postcode"
        required: "Field PostCode is required",
        minlength: "Field PostCode must contain at least 3 characters"
    }
}
  1. rulesmessages 对象的参数由输入元素的 name 属性作为键。您的输入元素不包含任何 name 属性。插件要求所有表单输入都包含唯一的 name,没有这些插件将无法工作。

  2. type 属性的值无效。没有type="username"type="postcode"这样的东西;并且您错误地在每个输入上有多个 type 属性,<input type="username" type="text" value="">

  3. 在您的情况下,您甚至没有尝试为 username 字段定义任何规则。 rules 对象中只有 passwordpostcode

修复无效的 HTML 标记和 JavaScript...

  • 从每个输入中删除所有无关的 type 属性。
  • 为每个输入添加一个唯一的 name 属性。
  • 仅在 rulesmessages 对象中引用您的 name 属性。

演示:jsfiddle.net/2tx6u7wf/