-1

我们如何检查或取消选中复选框单击时的所有单选按钮.. 如果选中复选框,则所有单选按钮也选中,反之亦然.. 它无法正常工作

<input type="checkbox" id="Check" />SelectAll<br /><input type="radio"/>First<br />


    <input type="radio"/>Second<br />
            <input type="radio"/>Third<br />
            <input type="radio"/>Fourth<br />
            <input type="radio"/>Fifth</div>
            <script>
                var IsCheck = false;
                $(document).ready(function () {
                    $("#Check").change(function () {
                        if (IsCheck == false) {
                            $("input[type=radio]").attr("checked", true);
                            IsCheck == true
                        }
                        else { $("input[type=radio]").attr("checked", false); IsCheck == false }
                    });
                }); </script>
4

6 回答 6

3

请注意,您只是在比较操作数,而不是在此语句中分配给变量:

IsCheck == true  
         ^------ REMOVE ONE = so it's an assignment

另外,不要使用.attr("checked", true);正确的形式是:

$("input[type=radio]").attr("checked", 'checked'); //checking for jQuery < 1.6

并取消选中:

$("input[type=radio]").removeAttr("checked");  //unchecking for jQuery < 1.6

如果您使用的是 jQuery > 1.6,则可以将该.prop()方法与布尔值一起使用,这与您尝试使用它的方式相似:

$("input[type=radio]").prop("checked", true); //checking for jQuery >= 1.6
$("input[type=radio]").prop("checked", false); //unchecking for jQuery >= 1.6
于 2013-06-22T11:14:45.970 回答
2

对于 jQuery 1.9 或更高版本使用

$('input[type=radio]').prop("checked", true)

否则试试

 $('input[type=radio]').attr('checked', 'checked');
于 2013-06-22T11:19:59.777 回答
1

尝试这个

 $(document).ready(function () {                    
    $("#Check").change(function () {                        
      $("input[type=radio]").attr("checked", $("#Check").is(":checked"));                            
    });
 });

演示

于 2013-06-22T11:14:35.850 回答
1

对于您的问题,这可能是答案:

$("#Check").change(function () {
    $("input:radio").prop("checked", this.checked);
});

演示:http: //jsfiddle.net/hungerpain/QSx29/

也就是说,单选按钮并不是最好的方法。它在语义上不正确。您只能在组中选择一个单选按钮。尝试改用复选框。尝试将您的标记更改为:

<input type="checkbox" id="Check" />SelectAll
<br />
<input type="checkbox" />First
<br />
<input type="checkbox" />Second
<br />
<input type="checkbox" />Third
<br />
<input type="checkbox" />Fourth
<br />
<input type="checkbox" />Fifth</div>

并将JS代码替换为:

$("#Check").change(function () {
    $("input:checkbox").prop("checked", this.checked);
});

这是一个演示:http: //jsfiddle.net/hungerpain/QSx29/1/

于 2013-06-22T11:15:46.220 回答
1

你只需要这个

$("#Check").change(function () {
    $("input[type=radio]").prop("checked", this.checked);
});

演示----> http://jsfiddle.net/kLnyD/

于 2013-06-22T11:16:17.667 回答
0

尝试这个

http://jsfiddle.net/4u9sQ/

 $("#Check").change(function () {
                        if ($(this).is(':checked')) {
                            $("input[type=radio]").prop("checked", true);

                        }
                        else { $("input[type=radio]").prop("checked", false); }
                    });
于 2013-06-22T11:21:54.913 回答