jQuery使用两个冲突范围验证rangelength
格式A:jQuery使用两个冲突范围验证rangelength,jquery,jquery-validate,Jquery,Jquery Validate,格式A:01234567890123456(17个字符) 格式B:01234567890123456789012(23个字符) 在我的场景中,17和23都被接受,既不是更少也不是更多,也不是介于两者之间 所以 2个字符不正确 16个字符不正确 17个字符是正确的 18个字符不正确 21个字符不正确 23个字符是正确的 23个以上字符不正确 典型的不符合这种条件 $( "#myform" ).validate({ rules: { national_id: { requ
01234567890123456
(17个字符)格式B:
01234567890123456789012
(23个字符)
在我的场景中,17和23都被接受,既不是更少也不是更多,也不是介于两者之间
所以
- 2个字符不正确
- 16个字符不正确
- 17个字符是正确的
- 18个字符不正确
- 21个字符不正确
- 23个字符是正确的
- 23个以上字符不正确
$( "#myform" ).validate({
rules: {
national_id: {
required: true,
rangelength: [17, 23]
}
}
});
因为它可以接受18/19/20/21/22为正确-这应该是错误的
如何使用插件实现这种rangelength
验证
PS:我知道我可以做一些简单的事情,比如,但是我们可以使用jQuery验证来做这样的事情吗?您必须使用它来创建自己的自定义规则
jQuery.validator.addMethod("exactlengths", function(value, element, params) {
return this.optional(element) || (value.length == params[0] || value.length == params[1]);
}, jQuery.validator.format("Please only enter {0} or {1} characters"));
声明:
$( "#myform" ).validate({
rules: {
national_id: {
required: true,
exactlengths: [17, 23] ....
演示:您必须使用创建自己的自定义规则
jQuery.validator.addMethod("exactlengths", function(value, element, params) {
return this.optional(element) || (value.length == params[0] || value.length == params[1]);
}, jQuery.validator.format("Please only enter {0} or {1} characters"));
声明:
$( "#myform" ).validate({
rules: {
national_id: {
required: true,
exactlengths: [17, 23] ....
演示:我在additional.js中添加了一个方法,该方法将验证一个范围,并允许特定的数字:
$.validator.addMethod(
"ranges_and_single",
function(value, element, ranges) {
var allowMeToo = false;
var valid = false;
console.log(this.optional(element));
for(var i=0; i<ranges.length; i++) {
if(ranges[i].length == 1) {
if(value == ranges[i][0])
{
allowMeToo = true;
}
}
if(allowMeToo)
{
valid = true;
break;
}
else if(value >= ranges[i][0] && (value <= ranges[i][1] || allowMeToo )) {
valid = true;
break;
}
}
return this.optional(element) || valid;
},
"Please enter the value in the ranges or perticular number"
);
我在additional.js中添加了一个方法,该方法将验证一个范围,并允许特定的数字:
$.validator.addMethod(
"ranges_and_single",
function(value, element, ranges) {
var allowMeToo = false;
var valid = false;
console.log(this.optional(element));
for(var i=0; i<ranges.length; i++) {
if(ranges[i].length == 1) {
if(value == ranges[i][0])
{
allowMeToo = true;
}
}
if(allowMeToo)
{
valid = true;
break;
}
else if(value >= ranges[i][0] && (value <= ranges[i][1] || allowMeToo )) {
valid = true;
break;
}
}
return this.optional(element) || valid;
},
"Please enter the value in the ranges or perticular number"
);
工作得很有魅力。这是缺失的部分。非常感谢。工作很有魅力。这是缺失的部分。谢谢。