我如何使用JQuery Validate插件为3个字段提供一条错误消息.例如3个dob字段.默认情况下,如果所有3个字段都留空,我将收到3条错误消息.我只想将一个错误链接到3个字段.如果有任何空白,则会出现错误.
Jul*_*les 54
与Chris的相似
$("form").validate({
rules: {
DayOfBirth: { required: true },
MonthOfBirth: { required: true },
YearOfBirth: { required: true }
},
groups: {
DateofBirth: "DayOfBirth MonthOfBirth YearOfBirth"
},
errorPlacement: function(error, element) {
if (element.attr("name") == "DayOfBirth" || element.attr("name") == "MonthOfBirth" || element.attr("name") == "YearOfBirth")
error.insertAfter("#YearOfBirth");
else
error.insertAfter(element);
}
});
Run Code Online (Sandbox Code Playgroud)
Chr*_*ris 13
您可以使用groups选项将输入组合在一起.如果每个输入都有错误消息,则只显示一个.
您可能希望覆盖与每个字段关联的消息,因此它们会更有意义.例如,默认情况下,您可能会收到一条错误消息,例如"此字段是必需的".好吧,当有三个输入时,这对用户来说并不好.您可能希望覆盖该消息,说"需要本地号码".对于此示例,我只是通过"请输入有效的电话号码"覆盖所有错误消息.
<input type="text" name="countryCode" />
<input type="text" name="areaCode" />
<input type="text" name="localNumber" />
groups: {
phoneNumber: "countryCode areaCode localNumber"
},
rules: {
'countryCode': {
required: true,
minlength:3,
maxlength:3,
number:true
},
'contactInformation[areaCode]': {
required: true,
minlength:3,
maxlength:3,
number:true
},
'contactInformation[localNumber]': {
required: true,
minlength:4,
maxlength:4,
number:true
},
},
messages: {
"countryCode": {
required: "Please enter a valid Phone Number",
minlength: "Please enter a valid Phone Number",
maxlength: "Please enter a valid Phone Number",
number: "Please enter a valid Phone Number"
},
"areaCode": {
required: "Please enter a valid Phone Number",
minlength: "Please enter a valid Phone Number",
maxlength: "Please enter a valid Phone Number",
number: "Please enter a valid Phone Number"
},
"localNumber": {
required: "Please enter a valid Phone Number",
minlength: "Please enter a valid Phone Number",
maxlength: "Please enter a valid Phone Number",
number: "Please enter a valid Phone Number"
}
},
Run Code Online (Sandbox Code Playgroud)
这是针对 HTML 部分的:
<div>
<p class="myLabel left">Date of birth:</p>
<p class="mandatory left">*</p>
<div class="left">
<p><input type="text" name="dobDay" class="required" /></p>
<p><i>dd</i></p>
</div>
<div class="left">
<p><input type="text" name="dobMonth" class="required" /></p>
<p><i>mm</i></p>
</div>
<div class="left">
<p><input type="text" name="dobYear" class="required" /></p>
<p><i>yyyy</i></p>
</div>
<div class="clear"></div>
<div class="myError">
<label for="dateOfBirth" class="error">Please enter a valid date.</label>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这是我使用的脚本:
$(document).ready(function() {
$("#myForm").validate({
groups: {
dateOfBirth: "dobDay dobMonth dobYear"
},
rules: {
'dobDay': {
required: true,
minlength:1,
maxlength:2,
range: [1, 31],
number:true
},
'dobMonth': {
required: true,
minlength:1,
maxlength:2,
range: [1, 12],
number:true
},
'dobYear': {
required: true,
minlength:4,
maxlength:4,
number:true
},
},
});
});
Run Code Online (Sandbox Code Playgroud)
所有 HTML 部分都可以根据您的需要进行自定义。我使用这些复杂的布局是因为我需要将此字段添加到现有表单中。但这是一个有效的例子!希望它可以帮助任何人!
有几个选择:查看errorContainer. 您可以将所有错误转移到完全独立的<div>. 或者你可以查看该invalid块,然后只需要一个errorMessage.show()命令。
| 归档时间: |
|
| 查看次数: |
59798 次 |
| 最近记录: |