这个切换功能有什么问题来检查所有复选框

时间:2013-06-24 09:24:50

标签: jquery checkbox click toggle

我想在勾选一个复选框时检查所有其他复选框

我使用了这段代码:

HTML:

<input type="checkbox" id="checkall" />

<input type="checkbox" name="rows[]" value="<?php echo $aut["aut_id"]; ?>" class="checkrow" />
<input type="checkbox" name="rows[]" value="<?php echo $aut["aut_id"]; ?>" class="checkrow" />
<input type="checkbox" name="rows[]" value="<?php echo $aut["aut_id"]; ?>" class="checkrow" />
<input type="checkbox" name="rows[]" value="<?php echo $aut["aut_id"]; ?>" class="checkrow" />
<input type="checkbox" name="rows[]" value="<?php echo $aut["aut_id"]; ?>" class="checkrow" />

jQuery的:

        <script type="text/javascript">
            jQuery(document).ready(function(){                

                jQuery("#checkall").click(function () {
                    if(jQuery("#checkall").prop("checked") == true) {
                        jQuery(".checkrow").prop("checked", true);
                    }else{
                        jQuery(".checkrow").prop("checked", false);
                    }


                });
            });            
        </script>

现在,这工作正常,但我想问是否有另一种最简单或更直接的方法?

特别是我使用了这段代码,但它没有用,我想知道原因是什么?

<script type="text/javascript">
        jQuery(document).ready(function(){

            jQuery("#checkall").click(function() {  
                jQuery(".checkrow").toggle(function() {                        
                   jQuery(this).attr("checked", "checked");
                }, function() {                        
                   jQuery(this).removeAttr("checked");
                });            
           });
        });            
    </script>

4 个答案:

答案 0 :(得分:0)

看看这个功能:

function toggleChecked(status) {
   $("INPUT[type='checkbox']").each( function() {
   $(this).attr("checked",status);
})

这会将您网页上的所有复选框设置为 状态

答案 1 :(得分:0)

为什么不

jQuery(function($){                
    $("#checkall").click(function () {
        $(".checkrow").prop("checked", this.checked);
    });
}); 

答案 2 :(得分:0)

最简单的方式,

<input type="checkbox" name="checkall" id="checkall" onclick="$('input[type=checkbox][name^=rows]').attr('checked',this.checked)">

答案 3 :(得分:0)

jQuery(document).ready(function(){                
                jQuery("#checkall").click(function (e) {
                    jQuery(".checkrow").prop("checked", e.target.checked);
                });
});