Хорошо, у меня есть форма с переключателями Да и Нет. Когда пользователь нажимает любой из них, он запускает функцию radioChanged (), которая проверяет, какой флажок установлен. Если не отмечен, он показывает поля электронной почты и проверяет форму на основе правил. Если пользователь нажимает «Да», мне нужно проверить и сбросить проверки, но они не работают. Должен ли я просто сделать новую проверку, если выбрано yes, для которого не требуются поля электронной почты?
<script type="text/javascript">
var validator = $("#newClient");
function radioChange() {
if (document.getElementById("yesbutton").checked == true) {
document.getElementById("emailSpan").style.display = "none";
document.getElementById("cemailSpan").style.display = "none";
document.getElementById("emailError").style.display = "none";
document.getElementById("cemailError").style.display = "none";
validator.resetForm();
} else if (document.getElementById("nobutton").checked == true) {
document.getElementById("emailSpan").style.display = 'block';
document.getElementById("cemailSpan").style.display = 'block';
document.getElementById("emailError").style.display = "block";
document.getElementById("cemailError").style.display = "block";
validator.validate({
rules: {
Email: {
required: true,
minlength: 4,
maxlength: 48,
email: true
},
ConfirmEmail: {
required: true,
minlength: 4,
maxlength: 48,
email: true,
equalTo: "#Email"
}
},
messages: {
Email: {
required: "Please enter a valid email address",
email: "Please enter a valid email address",
maxlength: "Max length is 48"
},
ConfirmEmail: {
required: "Please enter a valid email address",
email: "Please enter a valid email address",
maxlength: "Max length is 48",
equalTo: "Emails do not match"
}
},
errorPlacement: function(error, element) {
if (element.attr("name") == "ConfirmEmail") error.appendTo("#cemailError");
else if (element.attr("name") == "Email") error.appendTo("#emailError");
}
})
}
}
</script>