使用jQuery清除无线电输入

时间:2011-05-27 13:04:21

标签: javascript jquery

下面有一堆单选按钮。这些单选按钮是较大表单的一部分并且是可选的,因此如果用户单击一个,然后决定他/她不希望选择该选项,则无法撤消此选项。

我想知道是否有任何jQuery等,例如,点击链接时,根据HTML中的group名称清除所有无线电选择?

由于

3 个答案:

答案 0 :(得分:2)

var group_name = "the_group_name";

// if jquery 1.6++
$(":radio[name='" + group_name + "']").prop('checked', false);

// prev than 1.6
// $(":radio[name='" + group_name + "']").attr('checked', false);

工作演示:http://jsfiddle.net/roberkules/66FYL/

答案 1 :(得分:0)

var Custom = {
init: function() {
checkAllPrettyCheckboxes = function(caller, container){

        // Find the label corresponding to each checkbox and click it
        $(container).find('input[type=checkbox]:not(:checked)').each(function(){

            if($.browser.msie){
                $(this).attr('checked','checked');
            }else{
                $(this).trigger('click');
            };
        });
        };

        uncheckAllPrettyCheckboxes = function(caller, container){

            // Find the label corresponding to each checkbox and unselect them
            $(container).find('input[type=checkbox]:checked').each(function(){
                $('label[for="'+$(this).attr('id')+'"]').trigger('click');
                if($.browser.msie){
                    $(this).attr('checked','');
                }else{
                    $(this).trigger('click');
                };
            });
        };

我在init函数中创建了它,之后我调用了init。 } window.onload = Custom.init;

答案 2 :(得分:0)

我创建了一个类似 roberkules '的解决方案。解决方案,如果你在检查时点击radiobutton本身,我将清除radiobutton。如果您不想添加额外的" Clear"按钮到您的布局。

http://jsfiddle.net/P9zZQ/6/

// Requires JQuery 1.4+ (possibly earlier)

$(function () {
    // Turn off a radiobutton if clicked again while on
    var checkOff = function (event) {
        var target = $(event.target);
        if (target.is('label')) {
            // deal with clicked label
            if (target.attr('for')) {
                // label has 'for' attribute
                target = $('#' + target.attr('for'));
            } else {
                // label contains a radiobutton as a child
                target = target.find('input[type=radio]');
            }
        }
        if (target.is('input:checked[type=radio]')) {
            event.preventDefault();
            window.setTimeout(function () {
                target.attr('checked', false);
            }, 200);
        }
    }

    // Find all radiobuttons and labels inside .radio-clearable containers
    $(
        '.radio-clearable input[type=radio], ' +
        '.radio-clearable label').mousedown(function (event) {
        // When clicked -- clear if it was checked
        checkOff(event);
    }).keydown(function (event) {
        // When receiving space, escape, enter, del, or bksp -- clear if it was checked
        if (event.which == 32 || event.which == 27 || event.which == 13 || which == 46 || which == 8) {
            checkOff(event);
        }
    });
});

用法:对于任何想要以这种方式清除的无线电按钮,将其包装在一个容器中,使用类"无线电可清除"。

通过单击或发送密钥(Space,Escape,Enter,Del,BkSp)到radiobutton元素或其标签来触发代码。