Этот вопрос явно старый, но я считаю, что он все еще актуален. Текущий плагин Jquery Validate включает в себя синтаксис, позволяющий выполнить условия перед выполнением обязательного заполнения поля. Например, если вы хотите, чтобы поле было обязательным, только если флажок установлен, вы будете использовать:
$( "#myform" ).validate({
rules: {
email: {
required: "#other:checked"
}
}
});
Примечание : здесь необходимо установить флажок с идентификатором other
для ввода с атрибутом name='email'
.
В качестве альтернативы, вы можете написать функцию в объекте правил для проверки значения другого элемента, прежде чем сделать отдельный элемент обязательным. Например:
$( "#myform" ).validate({
rules: {
age: {
required: true,
min: 3
},
parent: {
required: function(element) {
return $("#age").val() < 13;
}
}
}
});
Примечание : Здесь значение поля ввода с атрибутом name='age'
должно иметь значение меньше 13, чтобы поле ввода с атрибутом name='parent'
было обязательным. В этой функции важно передать аргумент элемента.
Оба эти примера были взяты для сайта плагина Jquery Validation, вот ссылка: https://jqueryvalidation.org/required-method/