【问题标题】:JQuery - find a radio button by valueJQuery - 按值查找单选按钮
【发布时间】:2011-01-11 12:36:36
【问题描述】:

我将如何使用 JQuery 根据其值查找单选按钮?

【问题讨论】:

    标签: jquery radio-button


    【解决方案1】:

    这也可以实现:

    $('input[type="radio"][value="aaa"]').val();
    

    这将选择值为 aaa 的收音机


    .filter()方法:

    var radio =  $('input[type="radio"]').filter(function(){
                           return this.value === 'aaa';
                          }).val();
    

    【讨论】:

    • 这实际上会选择所有单选按钮并将其更改其值aaa 然后返回'aaa'
    【解决方案2】:

    完整的选择器如下所示:

    bool shipToBilling = $("[name=ShipToBillingAddress][value=True]")
    

    鉴于您可能有不止一个这样的单选按钮组

    <input name="ShipToBillingAddress" type="radio" value="True" checked="checked">
    <input name="ShipToBillingAddress" type="radio" value="False">
    
    <input name="SomethingElse" type="radio" value="True" checked="checked">
    <input name="SomethingElse" type="radio" value="False">
    

    使用这样的 ID 选择器(下一个示例)是不好的,因为您不应该有多个具有相同 ID 的元素。我假设发现这个问题的人已经知道这很糟糕。

    $("#DidYouEnjoyTheMovie:radio[value=yes]")
    

    关于:radio的以下内容可能感兴趣也可能不感兴趣

    因为 :radio 是一个 jQuery 扩展而不是 CSS 的一部分 规范,使用 :radio 的查询不能利用 本机 DOM querySelectorAll() 提供的性能提升 方法。为了在现代浏览器中获得更好的性能,请使用 [type="radio"] 而是。

    【讨论】:

      【解决方案3】:

      假设你在 HTML 中有这样的东西:

      <fieldset>
          <input type="radio" name="UI_opt" value="alerter" checked> Alerter<br/>
          <input type="radio" name="UI_opt" value="printer"> Printer<br/>
          <input type="radio" name="UI_opt" value="consoler"> Consoler<br/>
      </fieldset>
      

      那么这种事情就行了。

      $("fieldset input[name='UI_opt'][checked]").val()
      

      【讨论】:

        【解决方案4】:

        我使用的是 jQuery 1.6,但这对我不起作用:$(":radio[value=foobar]").attr('checked',true);

        相反,我使用的是:$('[value="foobar"]').attr('checked',true); 而且效果很好。

        我使用的实际代码首先清除无线电并使用prop 而不是attr

        $('[name=menuRadio]').prop('checked',false);
        
        $('[name=menuRadio][value="Bar Menu"]').prop('checked',true);
        

        【讨论】:

        • 这是一个已修复的错误吗?还是应该在值周围加上引号?
        【解决方案5】:

        试试这个:

        $(":radio[value=foobar]")
        

        这将选择属性为value="foobar"的所有单选按钮。

        【讨论】:

        • 谢谢我这样使用它:jQuery.each(cookieObj, function(i, val) { $(":radio[value=val]").attr('checked',true); });
        • @test:试试这个:function(i, val) { $(":radio[value="+val+"]").attr('checked',true); }
        • @Gumbo 如果我们给这个函数一个名字,我们可以这样称呼它吗?:$checkedRadioValues = findChecked("value");
        猜你喜欢
        • 2017-01-05
        • 1970-01-01
        • 1970-01-01
        • 2011-07-01
        • 2016-08-17
        • 1970-01-01
        • 1970-01-01
        • 2013-01-14
        • 2012-07-25
        相关资源
        最近更新 更多