Персональный сайт Александра Литовченко

номер32
Поиграть в преферанс в онлайне
12 июля 2012 18:22

Радиоприемник и JQuery

Внезапно подумалось о том, что при заполнении форм, пользователь, "натыкав" в сет радиокнопок может передумать, но снять уже сделанную отметку обычная html форма ему уже не даст. Иногда заботливые разрабтчики добавляют возможность обнуления данных формы, но это не всегда удобно.

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

Jquery должна быть не очень древней и поддерживать data(), в которой будем сохранять состояние и prop(), которым будем принудительно снимать отметку в случае необходимости.

$(':radio').each(function() {
    $(this).data('isChecked', $(this).is(':checked'));
    $(this).click(function() {
        var prev_checked = $(this).data('isChecked');
        $("input[name='"+$(this).prop("name")+"']").each(function() {
            $(this).data('isChecked', false);
        });
        if (prev_checked)
            $(this).prop('checked', false);
        else
            $(this).data('isChecked', true);
    })
});

Добавить комментарий

только текст. HTML теги вырезаются:

Пожалуйста будьте вежливы при общении