jQuery验证插件:多个范围内的值

jQuery验证插件:多个范围内的值,jquery,error-handling,validation,Jquery,Error Handling,Validation,我使用jQueryValidate插件来验证表单,我希望值小于26或大于30。我该怎么做 我试过: forum_id: { required: true, range: [0,26], range:[40,100] } 但是它只取最后一个范围,所以如果值低于40,它会抛出一个错误,即使它也低于26 有什么建议吗?使用插件本身似乎没有办法做到这一点,但有几个人建议使用正则表达式来验证范围 此资源演示如何将regex方法添加到验证器: 我还更进一步,编写了一个插件来处理多个范围: $(docu

我使用jQueryValidate插件来验证表单,我希望值小于26或大于30。我该怎么做

我试过:

forum_id: { required: true, range: [0,26], range:[40,100] }
但是它只取最后一个范围,所以如果值低于40,它会抛出一个错误,即使它也低于26


有什么建议吗?

使用插件本身似乎没有办法做到这一点,但有几个人建议使用正则表达式来验证范围

此资源演示如何将regex方法添加到验证器:

我还更进一步,编写了一个插件来处理多个范围:

 $(document).ready(function() {

 $.validator.addMethod(
    "ranges",
     function(value, element, ranges) {
        var noUpperBound = false;
        var valid = false;
        for(var i=0; i<ranges.length; i++) {
            if(ranges[i].length == 1) { 
                noUpperBound = true;
            }
            if(value >= ranges[i][0] && (value <= ranges[i][1] || noUpperBound)) {
                valid = true;
                break;
            }            
        }

        return this.optional(element) || valid;
    },
    "Please check your input."
 );


 $("#myform").validate({
     submitHandler: function(form) {
        if(form && form.submit) form.submit();
     } 
 });

 // range must be between 0 to 25 OR greater than 30
   // represented as an array of size-2 arrays.
 $("#age").rules('add', { ranges: [ [0,25], [31] ] });


 <form id="myform" action="#">
    <span>age</span><input type="text" id="age" name="age" />
    <input type="submit" name="submit" value="submit" />
 </form>
$(文档).ready(函数(){
$.validator.addMethod(
“范围”,
函数(值、元素、范围){
var noUpperBound=false;
var-valid=false;

对于(var i=0;i=ranges[i][0]&&(value),似乎没有一种使用插件本身来实现这一点的方法,但一些人建议使用正则表达式来验证范围

此资源演示如何将regex方法添加到验证器:

我还更进一步,编写了一个插件来处理多个范围:

 $(document).ready(function() {

 $.validator.addMethod(
    "ranges",
     function(value, element, ranges) {
        var noUpperBound = false;
        var valid = false;
        for(var i=0; i<ranges.length; i++) {
            if(ranges[i].length == 1) { 
                noUpperBound = true;
            }
            if(value >= ranges[i][0] && (value <= ranges[i][1] || noUpperBound)) {
                valid = true;
                break;
            }            
        }

        return this.optional(element) || valid;
    },
    "Please check your input."
 );


 $("#myform").validate({
     submitHandler: function(form) {
        if(form && form.submit) form.submit();
     } 
 });

 // range must be between 0 to 25 OR greater than 30
   // represented as an array of size-2 arrays.
 $("#age").rules('add', { ranges: [ [0,25], [31] ] });


 <form id="myform" action="#">
    <span>age</span><input type="text" id="age" name="age" />
    <input type="submit" name="submit" value="submit" />
 </form>
$(文档).ready(函数(){
$.validator.addMethod(
“范围”,
函数(值、元素、范围){
var noUpperBound=false;
var-valid=false;
对于(var i=0;i=范围[i][0]&&(值