У меня есть упрощенная версия моей проблемы здесь: http://www.arianhojat.com/temp/jquery/dynamic_validate/test.html
По существу, у меня было правило электронной почты, и на основе флажка я его удаляю ... но оно все еще не удаляется ..Я попытался переместить его в свое собственное правило с помощью «add», затем попытался удалить с помощью сопровождающей его функции «remove», но проблема все еще та же.
Поэтому после того, как вы введете свое имя, попробуйте отправить.это будет ошибка в поле Email ... затем установите флажок, он должен удалить проверку для #email, он удаляет только половину.например, если вы попытаетесь отправить с использованием только имени, это разрешит ... но теперь введите что-то в поле электронной почты и попробуйте отправить ... будет выдано сообщение о том, что оно недействительно (но проверка была удалена?)
Спасибо!
Код здесь для справки:
$(document).ready(function(){
$("#contactForm").validate({
onfocusout: false,
debug: true,
rules: {
fname: {
required: true
}
},
messages: {
fname: {
required: "* Please enter a first name"
}
},
errorLabelContainer: "#messageBox",
wrapper: "li",
submitHandler: function(form) {
alert('Submitted');
return false;
}
});
$("#email").rules("add", {
required: true,
email: true,
messages: {
required: "* Please enter a sweet email address",
email: "* Please enter a sweet valid email address"
}
});
$('#no_email').bind('change', function(event) {
if( $(this).attr('checked') ) {
console.log('removed?');
$("#email").rules("remove"); //, "required email" ... still doesnt work if specify the rules to remove
} else {
console.log('re-added?');
$("#email").rules("add", {
required: true,
email: true,
messages: {
required: "* Please enter an awesome email address",
email: "* Please enter an awesome valid email address"
}
});
} //else
$("#contactForm").validate().element( "#email" );
});
});
....
<form id="contactForm" action="doesnt_exist_yet2.html" method="post">
<ul id="messageBox"></ul>
<div style="">
<p>First name:</p>
<input type="text" name="fname" id="fname" class="fname" maxlength="100"/>
</div>
<div style="">
<p>Your Email Address</p>
<input type="text" name="email" id="email" class="email" maxlength="100"/>
</div>
<br/><br/>
<input type="checkbox" name="no_email" id="no_email" /> Turn off validation for EMAIL
<input type="submit" name="submit_btn" id="submit_btn" value="Submit">
</form>