5 months late...hopefully it's still helpful:
jQuery.validate uses the errorPlacement:
option for passing the error and element arguments so you can do whatever you want with them...and the function executes every time an error occurs in the user's form. Its counterpart is success:
which passes label as an option.
But for ultimate flexibility you don't even have to use "label". Instead you could pass a jQuery object from errorPlacement (based on traversing from the object "element") to the success:
option. And success calculates in real time as well.
All somewhat confusing, but here's some generic code...
For your HTML you could put:
<div class="errorparent">
<input type="text" id="username" name="username"/>
<div class="norederrorx errordetails"> </div>
</div>
For locating your custom div under your jQuery.validate options:
errorPlacement: function(error, element) {
var errorcontent=eval(error);
errorspotholder = element.parents('.errorparent');
And in your success option:
errorspotholder.find('.rederrorx').removeClass('rederrorx').addClass('norederrorx');
If you want to manipulate even more divs...such as a separate valid mark div, you'd simply traverse to a different object from 'errorsotholder' which refers to the containing parent div 'errorparent'
All the best!
Emile