如何在jquery.validate.js的规则中使用IF-ELSE条件

如何在jquery.validate.js的规则中使用IF-ELSE条件,jquery,validation,forms,Jquery,Validation,Forms,如何在Jquery验证中使用规则函数中的IF-ELSE条件 我使用一个表单,其中一些字段是选项1所必需的,而一些字段是选项2所必需的 范例 对于下面的代码,我需要选项1的名称和地址,选项2的名称和url。如何对此使用IF/Else条件 $(document).ready(function(){ $("#demo-form").validate({ rules: { name: "required",

如何在Jquery验证中使用规则函数中的IF-ELSE条件

我使用一个表单,其中一些字段是选项1所必需的,而一些字段是选项2所必需的

范例

对于下面的代码,我需要选项1的名称和地址,选项2的名称和url。如何对此使用IF/Else条件

 $(document).ready(function(){      
        $("#demo-form").validate({    
          rules: {
            name: "required",
            address: "required",
            url: "required url",
            integer: {
        required:true,
        integer:true,
        min: 5
        },
       }
       });

为什么不这样做呢:

$(document).ready(function () {
    $("#demo-form").validate({
        rules: {
            <% if (option1=true) { %>
            name: "required",
            <% } %>
            address: "required",
            url: "required url",
            integer: {
                required: true,
                integer: true,
                min: 5
            },
        }
    });
$(文档).ready(函数(){
$(“#演示表单”)。验证({
规则:{
名称:“必需”,
地址:“必填”,
url:“必需的url”,
整数:{
要求:正确,
整数:对,
最小:5
},
}
});

您可以使用内联if语句:

$(document).ready(function(){      
        $("#demo-form").validate({    
          rules: {
            name: someCondition ? "required" : "notrequired",
            address: "required",
            url: "required url",
            integer: {
        required:true,
        integer:true,
        min: 5
        },
       }
       });
其中
someCondition
的计算结果过于布尔,例如:
($('selectedOption')。val()==1)


注意:当不需要属性时,在
notrequired
的位置放置正确的名称。

sZipCode:page.langID==1?{required:true,minlength:5,number:true,range:[179999]}:{required:true,minlength:5,number:true,rangesk:[100099998000,99999]},

这个问题显然很老了,但我相信它仍然是相关的。当前的Jquery Validate插件包含语法,允许在将字段设置为必填字段之前满足条件。例如,如果您希望仅在选中复选框后才将字段设置为必填字段,则将使用:

$( "#myform" ).validate({
    rules: {
        email: {
            required: "#other:checked"
        }
    }
});
注意:此处必须选中ID为
other
的复选框,以便输入属性
name='email'

或者,您可以在rules对象中编写一个函数,在需要单独的元素之前检查另一个元素的值。例如:

$( "#myform" ).validate({
    rules: {
        age: {
            required: true,
            min: 3
        },
        parent: {
            required: function(element) {
            return $("#age").val() < 13;
            }
        }
    }
});
$(“#myform”)。验证({
规则:{
年龄:{
要求:正确,
min:3
},
家长:{
必需:功能(元素){
返回$(“#age”).val()<13;
}
}
}
});
注意:在这里,属性为
name='age'
的输入字段的值必须小于13,属性为
name='parent'
的输入字段是必需的。在此函数中传递元素参数非常重要


这两个示例都是针对Jquery验证插件的网站,下面是链接:

Dumb Question:为什么不使用服务器端语言进行验证?这是需要在客户端使用Jquery进行验证的要求。我猜你不理解我的问题,我将举一个示例。请编辑你的答案并格式化代码以使其可读able(行首需要4个空格,代码标记不起作用,afaik和您的经验:)
$( "#myform" ).validate({
    rules: {
        age: {
            required: true,
            min: 3
        },
        parent: {
            required: function(element) {
            return $("#age").val() < 13;
            }
        }
    }
});