【问题标题】:Need Help To Uncheck Radio Button If Aleady Checked Using Jquery如果已经使用 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

【问题讨论】:

  • 这背后的用例是什么?您是否只想在每次显示页面时重置单选按钮的状态?

标签: javascript jquery html forms radio-button


【解决方案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);
    

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

    【讨论】:

      猜你喜欢
      • 2014-02-03
      • 2013-02-24
      • 2011-09-02
      • 2010-11-13
      • 2013-10-09
      • 1970-01-01
      • 2011-08-21
      • 2019-11-23
      • 2015-11-17
      相关资源
      最近更新 更多