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

Posted

技术标签:

【中文标题】如果已经使用 Jquery 选中,需要帮助取消选中单选按钮【英文标题】:Need Help To Uncheck Radio Button If Aleady Checked Using Jquery 【发布时间】:2013-04-09 23:13:07 【问题描述】:

如果按钮已选中,我需要帮助取消选中或选中相同的单选按钮吗?我有用于启用或禁用其他单选按钮的 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

【问题讨论】:

这背后的用例是什么?您是否只想在每次显示页面时重置单选按钮的状态? 【参考方案1】:

虽然来不及回答,但可以帮助别人 我试过这个解决方案。 非常适合我!

$("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');
        
)

【讨论】:

永远不会太晚!谢谢分享!【参考方案2】:

只需将disabled 替换为checked

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

或者对于this元素:

this.checked = false;

但是,如果您正在寻找可以选中和不选中的表单元素,也许input type="checkbox" /&gt; 是您所需要的。

【讨论】:

这一行是指if($(this).is(':checked')) 所以按照逻辑,你应该使用this.checked = !this.checked之类的东西。【参考方案3】:
$inputs.filter(':checked').prop('checked', false);

【讨论】:

【参考方案4】:

我认为您需要复选框而不是单选按钮来取消选中:

<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);

【讨论】:

Mohamed Ali 我的页面中已经有其他复选框,所以如果我将再次使用带有 jquery 的复选框,则会出现问题 @edgematrix 为您指定的复选框添加类名非常简单,然后选择该类的复选框【参考方案5】:

answer of Pablo Araya 不错,但是...

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

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

【讨论】:

以上是关于如果已经使用 Jquery 选中,需要帮助取消选中单选按钮的主要内容,如果未能解决你的问题,请参考以下文章

使用 Jquery 选中/取消选中输入框 [重复]

如果在 jquery 和 codeigniter 中检查和取消选中复选框的其他条件

如何取消选中除使用 jQuery 的复选框之外的所有复选框?

使用Jquery根据Checkbox ID选中,取消选中每行表中的复选框

复选框 - 使用 jQuery 和 MySQL 选中或取消选中

在Angular js中从jquery中选中还是取消选中?