使用jQuery选择/取消选择具有不同名称的单选按钮

时间:2015-04-23 03:13:04

标签: javascript jquery html radio-button

我有一个测验,它使用数据库中答案的ID作为名称,以检查它们是否正确。所以基本上我不能使它们全名相同。

无论如何,这给我留下了可以全部检查的单选按钮,但它不应该如何工作。我发现jQuery允许取消选中单选按钮,但是当你点击其他按钮时我需要取消选中它们。

HTML:

<fieldset>
    <input type="radio" name="21">
    <label for="21">Answer 21</label>
    <input type="radio" name="22" class="checked">
    <label for="22">Answer 22</label>
    <input type="radio" name="23" class="">
    <label for="23">Answer 23</label>
    <input type="radio" name="24">
    <label for="24">Answer 24</label>
</fieldset>

脚本:

    $("input[type='radio']").click(function (event) {
    // If the button is selected.
    if ($(this).hasClass("checked")) {
        // Remove the placeholder.
        $(this).removeClass("checked");
        // And remove the selection.
        $(this).removeAttr("checked");
        // If the button is not selected.
    } else {
        // Remove the placeholder from the other buttons.
        $("input[type='radio']").each(function () {
            $(this).removeClass("checked");
        });
        // And add the placeholder to the button.
        $(this).addClass("checked");
    }
});

因此,如果选中21并且我点击22,则应取消选中

3 个答案:

答案 0 :(得分:0)

尝试此代码,除了点击的单选按钮外,所有单选按钮都将取消选中。就像Aron P Johny所说的那样,如果你想把所有的单选按钮分组给特定的问题和答案,那就去找他的答案吧。

&#13;
&#13;
$("input[type='radio']").click(function (event) {       
            $("input[type='radio']").prop('checked',false);
            $(this).prop('checked',true);      
    });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<fieldset>
    <input type="radio" name="21">
    <label for="21">Answer 21</label>
    <input type="radio" name="22" class="checked">
    <label for="22">Answer 22</label>
    <input type="radio" name="23" class="">
    <label for="23">Answer 23</label>
    <input type="radio" name="24">
    <label for="24">Answer 24</label>
</fieldset>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

如果您希望同一字段集中的无线电组充当无线电组,那么您只需执行

 $("input[type='radio']").click(function (event) {
     $(this).addClass("checked");    
     $(this).siblings('input[type="radio"]').prop('checked', false).removeClass('checked')
 });

演示:Fiddle

答案 2 :(得分:0)

Fill如果这是你想要的,你真的不需要jQuery ..

max(array_slice($arr,2,3))
max(array_slice($arr,4,4))
max(array_slice($arr,8,3))

确保它们都具有相同的名称..