Jquery验证:基于下拉选择动态添加/删除规则

Jquery验证:基于下拉选择动态添加/删除规则,jquery,validation,dynamic,drop-down-menu,jquery-validate,Jquery,Validation,Dynamic,Drop Down Menu,Jquery Validate,我有一个下拉选择器,值从1到4。根据选择,表单中的后续输入将被隐藏,并且需要的验证将从每个表单中删除。 例如,如果选择2,则显示输入1-2并添加所需验证,同时隐藏3-4并删除验证 $("#dropdownSelector").change(function() { inputtohide = $(this).val(); $('input[id*=conviction]').slice(0, inputtohide).show().rules("add", {required: "#convic

我有一个下拉选择器,值从1到4。根据选择,表单中的后续输入将被隐藏,并且需要的验证将从每个表单中删除。 例如,如果选择2,则显示输入1-2并添加所需验证,同时隐藏3-4并删除验证

$("#dropdownSelector").change(function() {
inputtohide = $(this).val();
$('input[id*=conviction]').slice(0, inputtohide).show().rules("add", {required: "#convictions_0:checked" });
$('input[id*=conviction]').slice(inputtohide, 4).hide().rules("remove", {required: "#convictions_0:checked" });
$("#thisform").validate();
});
这很好,但是(正如验证插件的文档所述)只为返回的第一个元素添加验证

我从其他帖子中了解到,以下代码应该为每个输入添加验证:-

$("#thisform").validate();
$("input[id*=conviction]").each(function() {
    $(this).rules("add", {required: "#convictions_0:checked" });

    });
我的问题是如何组合这两位代码?
非常感谢您的帮助。

您只需在
.slice()
结果上使用
.each()
函数,即可迭代它返回的所有元素:

$('input[id*=conviction]').slice(0, inputtohide).each(function(){
    $(this).show().rules("add", {required: "#convictions_0:checked" });
});

$('input[id*=conviction]').slice(inputtohide, 4).each(function(){
    $(this).hide().rules("remove", {required: "#convictions_0:checked" });
});

希望这有帮助

谢谢@FreekOne,这帮了大忙。它正确地添加了规则,但显示/隐藏停止正常工作。我对它做了一点修改,现在可以使用了-谢谢:-
code
$('input[id*=confidence]').slice(0,inputohide).show().each(function(){$(this).rules(“add”,{required:{confidences\u 0:checked”})$('input[id*=confidence]').slice(inputOhide,4.hide().each(function(){$(this).rules(“删除”,{required:{confidences:});})<代码>代码@naturelab我不确定为什么
显示
/
隐藏
会停止工作,因为代码是正确的,但我很高兴我能帮上忙!