Приведенный выше ответ направил меня в правильном направлении, но у меня это не сработало. Если у вас много полей, было бы утомительно добавлять и удалять классы для каждого поля при нажатии кнопки. Кроме того, вам нужно знать идентификаторы или классы полей, которые нужно игнорировать.
Это решение, которое я придумал. Я создал группы проверки с помощью divs и использовал селектор jquery : not , чтобы сказать валидатору игнорировать любое поле, не содержащееся в этой группе.
<html>
<head>
<script type="text/javascript">
$(function(){
section1Validator = $("#form1").validate(
{ ignore: ":not(#section1 *)" });
section2Validator = $("#form1").validate(
{ ignore: ":not(#section2 *)" });
$("#c").click(function(){
if (section1Validator.form()) {
// do something when form is valid
}
});
$("#d").click(function(){
if (section2Validator.form()) {
// do something when form is valid
}
});
})
</script>
</head>
<body>
<form id="form1">
<div id="section1">
<input id="a" name="a" type="text" class="required"/>
<button id="c" type="buttom">submit</button>
</div>
<div id="section2">
<input id="b" name="b" type="text" class="required"/>
<button id="d" type="button">submit</button>
</div>
</form>
</body>
</html>