У нас это возникло на днях, вот как я решил это:
var validator = $('form#yourID').validate({
errorPlacement: function (error, element) {
if (element.is(":radio")) {
element.closest('.rbl').after(error);
element.closest('.rbl').addClass('error');
}
else if (element.is(":checkbox")) {
element.closest('.cbl').after(error);
element.closest('.cbl').addClass('error');
}
else { // This is the default behavior of the script
error.insertAfter(element);
}
},
rules: { ...
Где .rbl
является тегом <table>
и выглядит следующим образом css:
<table cellpadding="0" cellspacing="0" class="rbl">
<tr><td><label><input type="radio" name="myradio" value="1"> Radio 1</label></td></tr>
<tr><td><label><input type="radio" name="myradio" value="2"> Radio 2</label></td></tr>
</table>
CSS:
FORM .rbl
{
float: left;
}
FORM .rbl TD
{
padding: 4px 24px 0 0;
}
То же самое можно применить к спискам флажков с .cbl
. Все другие типы, не относящиеся к радио и флажкам, будут использовать стандартное размещение ошибок.
Надеюсь, это поможет.