Попробуй это. Он помещает ошибку перед объектом, на котором возникла ошибка. Если вы установите первую кнопку радио, как требуется, это сработает. Для согласованности я выбрал выполнение этого действия для всех типов ввода, но вы также можете немного изменить сценарий, чтобы выполнить это действие, только если радиогруппа не прошла проверку.

аюсь использовать плагин проверки Jquery для проверки моей формы. У меня есть сообщения об ошибках справа от большинства моих элементов ввода, но переключатели не дают мне ничего, кроме неприятностей.

Если я не указываю ширину для класса div.group, сообщение об ошибке появляется на внешней стороне полной страницы (так как я предполагаю, что ширина div равна 100% страницы?) Если ничего не сделать, появится сообщение об ошибке после первого переключателя вместо второго. Я не могу жестко закодировать ширину, так как я хочу использовать ее в радиогруппах различной ширины. Как я могу сделать так, чтобы он появлялся у правого края, где кончаются переключатели в переключателях?

Спасибо!

var validator = $("#myForm").validate({
        errorElement: "div",
        wrapper: "div",  // a wrapper around the error message
        errorPlacement: function(error, element) {

            if (element.parent().hasClass('group')){
                element = element.parent();
            }


            offset = element.offset();
            error.insertBefore(element)
            error.addClass('message');  // add a class to the wrapper
            error.css('position', 'absolute');
            error.css('left', offset.left + element.outerWidth());
            error.css('top', offset.top);
    }
});

А потом

<p>
    <div class="group">
        <label>Gender</label>
        Male: <input id="gender_male" type="radio" name="gender" class="required" value="Male" />
        Female: <input id="gender_female" type="radio" name="gender" class="required" value="Female"  />
    </div>

Может быть, просто так, чтобы сообщение об ошибке появилось после последнего переключателя в группе? Если бы я мог получить указатель на последний элемент, я мог бы соответственно изменить смещение.

РЕДАКТИРОВАТЬ: Ага, я просто использовал div.group {display: inline-block;}.

Ответы на вопрос(4)

Ваш ответ на вопрос