my js is as follows:
var validator = $('#myForm').validate({
onfocusout: false,
onkeyup: false,
rules: {
prefix: { required: true },
name: { required: true }
},
messages: {
prefix: { required: 'Please select a prefix' },
name: { required: 'Please provide your name' }
},
errorClass: 'formError',
highlight: function(element, errorClass) {
$(element.form).find('label[for=' + element.id +
']').addClass(errorClass);
},
unhighlight: function(element, errorClass) {
$(element.form).find('label[for=' + element.id +
']').removeClass(errorClass);
}
});
and my html:
<fieldset>
<label for="prefix">*Prefix:</label>
<input id="prefix" name="prefix" type="text" class="field" />
</fieldset>
<fieldset>
<label for="name">*Name:</label>
<input id="name" name="name" type="text" class="field" />
</fieldset>
and I am using jquery 1.2.6 with jquery validation 1.4
When I submit with errors both labels get the errorClass attached
which is what I want. But when I fix the errors and submit again, the
labels disappear and it seems are getting a style="display;none"
instead of running the unhighlight method. Also, if I put an alert
statement inside the unhighlight method it seems once you submit with
no errors each corrected field spits out the alert twice. Any ideas?
How do I get the unhighlight to remove the class instead of making the
label disappear?