一次取消选中所有JQuery单选按钮组

her*_*ron 21 javascript jquery jquery-ui

使用jQ-ui的按钮功能

<script>
    $(function() {
        $( "#radio" ).buttonset();
    });
    </script>


    <div id="radio">
        <input type="radio" id="radio1" name="radio" /><label for="radio1">Choice 1</label>
        <input type="radio" id="radio2" name="radio" checked="checked" /><label for="radio2">Choice 2</label>
        <input type="radio" id="radio3" name="radio" /><label for="radio3">Choice 3</label>
    </div>
Run Code Online (Sandbox Code Playgroud)

有没有办法一次取消选中buttonset的所有单选按钮?

Mic*_*son 33

您可以使用以下内容取消选中它们(针对jQuery UI 1.9更新:

$('#radio input').removeAttr('checked');
// Refresh the jQuery UI buttonset.                  
$( "#radio" ).buttonset('refresh');
?
Run Code Online (Sandbox Code Playgroud)

工作JSFiddle.

  • @CoryDorning我已经更新了答案和小提琴,谢谢你的提醒 (2认同)

Fré*_*idi 15

您可以匹配所有单选按钮并使用prop()取消选中它们.

但是,您还必须在执行此操作后刷新buttonset小部件:

$("#radio").find("input:radio").prop("checked", false).end()
           .buttonset("refresh");
Run Code Online (Sandbox Code Playgroud)


Ant*_*der 14

之前的jQuery 1.6版本

$(':radio').attr('checked', false);  
Run Code Online (Sandbox Code Playgroud)

要么

$(':radio').removeAttr('checked');
Run Code Online (Sandbox Code Playgroud)

在jQuery 1.6+之后

$(':radio').prop('checked', false);
Run Code Online (Sandbox Code Playgroud)

要么

$(':radio').removeProp('checked');
Run Code Online (Sandbox Code Playgroud)