jquery 验证属性以检查多个字段
jquery validate properties to check multiple fields
我想知道是否可以进行这种 jquery 验证,也许需要单独的方法。
我正在检查 phone 号码、区域、前缀和行号的三个字段。
因此,如果输入了 none 个字段,则应绕过验证。
我现在所拥有的是检查每个值的最小和最大长度,但是例如,如果用户仅在区域文本框中正确输入值,然后将其他两个文本框留空,则验证是被绕过,因为条件是 "met",min 或 max 或空白。
我想要实现的是,如果任何字段有值,那么所有三个字段都应该有值,如果其中 none 有值,则验证关闭。
这是我目前拥有的:
$(this).validate({
rules: {
QUEST7_area: {
minlength: 3,
maxlength: 3
},
QUEST7_prefix: {
minlength: 3,
maxlength: 3
},
QUEST7_linenum: {
minlength: 4,
maxlength: 4
}
},
errorPlacement: function (error, element) {
// invalid handler will place the error
var errorRect = $('div.errorrect');
var message;
if ((element[0].id == "QUEST7_area") || (element[0].id == "QUEST7_prefix") || (element[0].id == "QUEST7_linenum")) {
var afterElement = $('#QUEST7_linenum');
error.insertAfter(afterElement);
phoneErrorDisplayed = true;
}
if (isNullOrWhiteSpace(errorRect.text())) {
errorRect.text(message);
}
},
messages: {
QUEST7_area: $('#QUEST7').data('errormsg'),
QUEST7_prefix: $('#QUEST7').data('errormsg'),
QUEST7_linenum: $('#QUEST7').data('errormsg'),
}
});
知道如何解决这个问题吗?
So, if none of the fields are entered in then the validation should be bypassed. ... What I want to achieve is if any of the fields have value, then all three fields should have value, if none of them have values then validation is off.
在 the additional-methods.js
file 中,有一个名为 skip_or_fill_minimum
的 rule/method,它完全符合您所描述的内容。
该规则将允许您从指定的字段组中指定最少数量的字段 required
...如果 none 已填写,则将跳过所有字段。
这个方法有两个参数...
1.组中必须填写的最少字段数。
在您的情况下,它是 3
,因为我们希望所有三个都完成(如果有的话)。
2。 select或定义组
在您的情况下,input[name^='QUEST7']
将自动 select 所有 input
元素,其中 name
以 [=18] 开头=].当然,您可以指定一个特殊的 class 或设计任何合适的 selector 仅获取这三个字段。
$(this).validate({
rules: {
QUEST7_area: {
minlength: 3,
maxlength: 3,
skip_or_fill_minimum: [3,"input[name^='QUEST7']"]
},
QUEST7_prefix: {
minlength: 3,
maxlength: 3,
skip_or_fill_minimum: [3,"input[name^='QUEST7']"]
},
QUEST7_linenum: {
minlength: 4,
maxlength: 4,
skip_or_fill_minimum: [3,"input[name^='QUEST7']"]
}
},
....
演示:http://jsfiddle.net/ktn6d7dd/
您可以选择使用 groups
and errorPlacement
选项来合并和放置一条错误消息。
我想知道是否可以进行这种 jquery 验证,也许需要单独的方法。
我正在检查 phone 号码、区域、前缀和行号的三个字段。
因此,如果输入了 none 个字段,则应绕过验证。
我现在所拥有的是检查每个值的最小和最大长度,但是例如,如果用户仅在区域文本框中正确输入值,然后将其他两个文本框留空,则验证是被绕过,因为条件是 "met",min 或 max 或空白。
我想要实现的是,如果任何字段有值,那么所有三个字段都应该有值,如果其中 none 有值,则验证关闭。
这是我目前拥有的:
$(this).validate({
rules: {
QUEST7_area: {
minlength: 3,
maxlength: 3
},
QUEST7_prefix: {
minlength: 3,
maxlength: 3
},
QUEST7_linenum: {
minlength: 4,
maxlength: 4
}
},
errorPlacement: function (error, element) {
// invalid handler will place the error
var errorRect = $('div.errorrect');
var message;
if ((element[0].id == "QUEST7_area") || (element[0].id == "QUEST7_prefix") || (element[0].id == "QUEST7_linenum")) {
var afterElement = $('#QUEST7_linenum');
error.insertAfter(afterElement);
phoneErrorDisplayed = true;
}
if (isNullOrWhiteSpace(errorRect.text())) {
errorRect.text(message);
}
},
messages: {
QUEST7_area: $('#QUEST7').data('errormsg'),
QUEST7_prefix: $('#QUEST7').data('errormsg'),
QUEST7_linenum: $('#QUEST7').data('errormsg'),
}
});
知道如何解决这个问题吗?
So, if none of the fields are entered in then the validation should be bypassed. ... What I want to achieve is if any of the fields have value, then all three fields should have value, if none of them have values then validation is off.
在 the additional-methods.js
file 中,有一个名为 skip_or_fill_minimum
的 rule/method,它完全符合您所描述的内容。
该规则将允许您从指定的字段组中指定最少数量的字段 required
...如果 none 已填写,则将跳过所有字段。
这个方法有两个参数...
1.组中必须填写的最少字段数。
在您的情况下,它是 3
,因为我们希望所有三个都完成(如果有的话)。
2。 select或定义组
在您的情况下,input[name^='QUEST7']
将自动 select 所有 input
元素,其中 name
以 [=18] 开头=].当然,您可以指定一个特殊的 class 或设计任何合适的 selector 仅获取这三个字段。
$(this).validate({
rules: {
QUEST7_area: {
minlength: 3,
maxlength: 3,
skip_or_fill_minimum: [3,"input[name^='QUEST7']"]
},
QUEST7_prefix: {
minlength: 3,
maxlength: 3,
skip_or_fill_minimum: [3,"input[name^='QUEST7']"]
},
QUEST7_linenum: {
minlength: 4,
maxlength: 4,
skip_or_fill_minimum: [3,"input[name^='QUEST7']"]
}
},
....
演示:http://jsfiddle.net/ktn6d7dd/
您可以选择使用 groups
and errorPlacement
选项来合并和放置一条错误消息。