尝试在 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"
}
}
rules
和 messages
对象的参数由输入元素的 name
属性作为键。您的输入元素不包含任何 name
属性。插件要求所有表单输入都包含唯一的 name
,没有这些插件将无法工作。
type
属性的值无效。没有type="username"
和type="postcode"
这样的东西;并且您错误地在每个输入上有多个 type
属性,<input type="username" type="text" value="">
在您的情况下,您甚至没有尝试为 username
字段定义任何规则。 rules
对象中只有 password
和 postcode
。
修复无效的 HTML 标记和 JavaScript...
- 从每个输入中删除所有无关的
type
属性。
- 为每个输入添加一个唯一的
name
属性。
- 仅在
rules
和 messages
对象中引用您的 name
属性。
我已经尝试过多次使用 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"
}
}
rules
和messages
对象的参数由输入元素的name
属性作为键。您的输入元素不包含任何name
属性。插件要求所有表单输入都包含唯一的name
,没有这些插件将无法工作。type
属性的值无效。没有type="username"
和type="postcode"
这样的东西;并且您错误地在每个输入上有多个type
属性,<input type="username" type="text" value="">
在您的情况下,您甚至没有尝试为
username
字段定义任何规则。rules
对象中只有password
和postcode
。
修复无效的 HTML 标记和 JavaScript...
- 从每个输入中删除所有无关的
type
属性。 - 为每个输入添加一个唯一的
name
属性。 - 仅在
rules
和messages
对象中引用您的name
属性。