I have a simple form that looks like below. I have clicked the Submit button once and all the jquery validation messages appear (as shown in red). However, upon unchecking the Call checkbox for Sports Event, I would like to remove all jquery validate messages associated to the Sports Event only. How can I do that? Currently, if I check the Call checkbox again, the validation messages are still shown.
Please see the codes below:
//if call checkbox is checked, display the phoneNo and attendeesNo field
function toggleCall(){
if (document.getElementById("callCheckbox").checked == true) {
document.getElementById('phoneNo').style.display = "";
document.getElementById('attendeesNo').style.display = "";
} else {
document.getElementById('phoneNo').style.display = "none";
document.getElementById('attendeesNo').style.display = "none";
}
}
HTML Code:
<tr>
<td>
<input type="checkbox" name="callCheckbox" id="callCheckbox" value="true" onclick="toggleCall()" />
</td>
<td>
<input type="checkbox" name="emailCheckbox" id="emailCheckbox" value="true" onclick="toggleEmail()" />
</td>
<td> Sports Event
<br>
<div id="sportsEvent" style="display:none;">
<label> Enter a phone number: </label>
<input type="text" name="phoneNo" id="phoneNo">
<br>
<label> No. of attendees: </label>
<input type="text" name="attendeesNo" id="attendeesNo">
</div>
</td>
</tr>
jquery validation method
<script type="text/javascript">
//jquery validation Script
var _global_validator = null;
$(document).ready(
function() {
$("#submitForm").validate( {
rules: {
phoneNo: {
required: function (element) {
if($("#callCheckbox").is(':checked')){
var e = document.getElementById("phoneNo");
if(e.value==""){
return true;
}
else{
return false;
}
}
else{
return false;
}
}
},
attendeesNo: {
required: function (element) {
if($("#callCheckbox").is(':checked')){
var e = document.getElementById("attendeesNo");
if(e.value==""){
return true;
}
else{
return false;
}
}
else {
return false;
}
}
},
errorElement : "small",
invalidHandler : function(e, validator) {
_global_validator = validator;
//renderDropdownUIValidation(validator);
renderCheckableUIValidation(validator);
},
errorPlacement : function(error, element) {
error.insertAfter(element);
},
messages : {
phoneNo: {
required: '<Please enter phone number>',
},
attendeesNo: {
required: '<Please enter no. of attendees>',
},
},
submitHandler: function(form) {
form.submit();
}
}
}); //end validate
});
</script>
