如果已经使用Jquery检查过,则需要帮助取消选中单选按钮

时间:2013-04-17 09:00:57

标签: javascript jquery html forms radio-button

如果按钮已经检查过,我需要帮助取消选中或检查相同的单选按钮?我有jquery函数,用于启用或禁用其他单选按钮,如果已经检查我现在要添加一些用于检查或取消选中相同单选按钮的功能?

(function ($) {
  $(document).ready(function () {
    $('input:radio').click(function(){
      var $inputs = $('input:radio')

      if($(this).is(':checked')){
        $inputs.not(this).prop('disabled',true);
      }else{
        $inputs.prop('disabled',false); 
      }
    })

  });
})(jQuery);

<input type="radio" value="Test1" />Test1
<input type="radio" value="Test2" />Test2
<input type="radio" value="Test1" />Test1
<input type="radio" value="Test2" />Test2

5 个答案:

答案 0 :(得分:2)

只需将disabled替换为checked

$input.prop("checked", false);

this元素:

this.checked = false;

但是,如果您要查找可以选中和取消选中的表单元素,则可能需要input type="checkbox" />

答案 1 :(得分:0)

$inputs.filter(':checked').prop('checked', false);

答案 2 :(得分:0)

我认为您需要使用复选框而不是单选按钮取消选中已选中的内容:

<input class="checkDisable" type="checkbox" value="Test1" />Test1
<input class="checkDisable" type="checkbox" value="Test2" />Test2
<input class="checkDisable" type="checkbox" value="Test3" />Test3
<input class="checkDisable" type="checkbox" value="Test4" />Test4


(function ($) {
$(document).ready(function () {
 $('input:checkbox.checkDisable').change(function(){
    var $inputs = $('input:checkbox.checkDisable')
    if($(this).is(':checked')){
        $inputs.not(this).prop('disabled',true);
    }else{
        $inputs.prop('disabled',false); 
        $(this).prop('checked',false);
    }
 })

});
})(jQuery);

答案 3 :(得分:0)

尽管回答为时已晚,但可以帮助其他人
我尝试过这种解决方案。
对我来说很好!

$("input[type='radio'].myClass").click(function(){
        var $self = $(this);
        if ($self.attr('checkstate') == 'true')
        {
            $self.prop('checked', false);
            $self.each( function() {
                $self.attr('checkstate', 'false');
            })  
        }
        else
        {
            $self.prop('checked', true);
            $self.attr('checkstate', 'true');
            $("input[type='radio'].myClass:not(:checked)").attr('checkstate', 'false');
        }
})

答案 4 :(得分:0)

answer of Pablo Araya 很好,但是...

$self.prop('checked', true);

在这里是多余的。单选按钮在每次点击时都已处于选中状态。