使用jQuery选择和取消选中一组复选框

时间:2012-12-03 16:39:21

标签: javascript jquery checkbox

让我们从头开始,但请不要惊慌......是一个Jquery问题; - )

我编写了一个PHP代码:用户向我们的数据库发送一个查询,该表单显示了一组结果,分组在表格中,并带有用于选择数据的复选框。

我想知道如何使用Select / Deselect复选框启用Jquery代码,选择/取消选择每个表的数据,我的意思是每组结果。

例如,类似于此示例http://www.wiseguysonly.com/2010/01/15/select-and-unselect-all-checkboxes-with-jquery/

1:所有复选框都有一个“复选框”类:input type =“checkbox”class =“checkbox”

function toggleChecked(status) {
    $(".checkbox").each( function() {
        $(this).attr("checked",status);
    });
}

你能告诉我修改toggleChecked功能的最佳方法是什么?

调用toggleChecked的第二个参数,用第二个参数值替换“.checkbox”? (我无法找到正确的语法)。

或者有不同的方法可以做到这一点?

而且,BTW,最好使用prop而不是attr? 最好的问候。

4 个答案:

答案 0 :(得分:4)

只需在函数中添加第二个参数,然后使用它。

function toggleChecked(status,selector) {
    $(selector).each(......);
}

如果你真的在这么简单的事情上苦苦挣扎,你真的不应该使用jQuery了。您应该首先了解普通JavaScript。否则就像去世界上最好的工具去建筑工地,甚至可能完全使用这些工具的知识...但不知道基本建筑是如何工作的,你可能会建造一个没有基础的漂亮建筑那会在一天内崩溃。

答案 1 :(得分:3)

Example

jQuery.is真的有帮助,或者prop(“checked”)将返回一个布尔值(所以无论如何):

var boxes = $(".checkbox");
boxes.prop("checked", !boxes.prop("checked"));

是的,jQuery.prop更好。

答案 2 :(得分:0)

嗯,我知道你已经得到了答案,但是......这是我的版本:

$.fn.changeCheckboxesState = function(state){
        if (state === undefined)
            state = true;

        $(this).filter(':checkbox').each(function() {
            $(this).prop('checked', state);
        });

        return this;
    };
$.fn.toggleCheckboxes = function() {

        $(this).filter(':checkbox').each(function() {
            var $this = $(this);

            $this.prop('checked', !$this.prop('checked'))
        });

        return this;
    };

答案 3 :(得分:0)

<script>
$(document).ready(function() {
    $('#selecctall').click(function(event) {  
        if(this.checked) { 
            $('.checkbox1').each(function() { 
                this.checked = true;           
            });
        }else{
            $('.checkbox1').each(function() { 
                this.checked = false;                   
            });        
        }
    });

});
</script>

In Cakephp code--

<?php   echo $this->Form->input('selecctall',array('id'=>'selecctall','type'=>'checkbox')); ?>

<?php   echo $this->Form->input('massaction',array('class'=>'checkbox1','label'=>'','type'=>'checkbox')); ?>