我有一个下拉选择器,其值为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" });
});
我的问题是如何组合这两位代码的? 非常感谢任何帮助,谢谢。
答案 0 :(得分:5)
您只需要在.each()
结果上使用.slice()
函数,以便迭代它返回的所有元素:
$('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" });
});
希望这有帮助!