내가 여기 내 문제의 단순화 된 버전 : 기본적으로 내가 이메일 규칙을했고, 내가 그것을 제거 체크 박스를 기반으로 ...하지만 여전히 아니다 http://www.arianhojat.com/temp/jquery/dynamic_validate/test.htmlJQuery와 유효성 검사 플러그인 동적 검증을 제거
제거 중 ... "추가"를 사용하여 자체 규칙으로 이동 한 다음, 동반 된 "제거"기능을 통해 제거하려고했지만 여전히 동일한 문제를 제거하려고했습니다.
그래서 귀하의 이름을 작성한 후 제출하십시오. 전자 메일 필드에 대해 오류가 발생합니다 ... 확인란을 선택하면 #email에 대한 유효성 검사가 제거되어야하며, 그 중 절반 만 제거됩니다. firstname으로 제출하려고 시도하는 것처럼 ... 그러나 지금은 이메일 필드에 내용을 입력하고 제출 해보세요. 유효하지 않음을 알리는 오류가 발생합니다 (유효성이 제거되었습니다.)
감사합니다. !
코드 참조를 위해 여기에 있습니다 :
$(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>