我想知道是否可以进行这种jquery验证,可能需要单独的方法。
我分别检查三个字段的电话号码,区域,前缀和亚麻。
因此,如果没有输入任何字段,则应绕过验证。
我现在所做的是检查每个值的最小值和最大值,例如,如果用户只在区域文本框中正确输入值,然后将其他两个文本框留空,则自动绕过验证条件符合"符合最小值或最大值或空白。
我想要实现的是,如果任何字段具有值,则所有三个字段都应具有值,如果它们都没有值,则验证关闭。
这是我到目前为止所做的:
$(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'),
}
});
知道如何解决这个问题吗?
答案 0 :(得分:0)
因此,如果没有输入任何字段,则应绕过验证。 ...我想要实现的是,如果任何字段都有值,那么所有三个字段都应该有值,如果它们都没有值,则验证关闭。
在the additional-methods.js
file内,有一个名为skip_or_fill_minimum
的规则/方法,它完全符合您的描述。
该规则允许您从指定的字段组中指定最小数量的字段required
...如果没有填写,则跳过所有字段。
此方法有两个参数......
1。必须从组中填写的最小字段数。
在您的情况下,它是3
,因为我们希望所有三个已完成(如果有的话)。
2。定义组的选择器
在您的情况下,input[name^='QUEST7']
会自动选择input
以 name
开头的所有"QUEST7"
元素。当然,您可以指定一个特殊的类或设计任何合适的选择器,只捕获这三个字段。
$(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']"]
}
},
....
DEMO:http://jsfiddle.net/ktn6d7dd/
或者,您可以使用groups
和errorPlacement
选项合并并发出一条错误消息。