3

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

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

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

例如,像这个例子http://www.wiseguysonly.com/2010/01/15/select-and-unselect-all-checkboxes-with-jquery/

1:所有的checkbox都有一个“checkbox”类:input type=”checkbox” class=”checkbox”</p>

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

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

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

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

而且,顺便说一句,最好使用 prop 而不是 attr?此致。

4

4 回答 4

4

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

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

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

于 2012-12-03T16:43:20.790 回答
3

例子

jQuery.is在这种情况下真的很有帮助,或者 prop("checked") 将返回一个布尔值(所以无论哪种方式):

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

是的,jQuery.prop更好。

于 2012-12-03T16:44:36.767 回答
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;
    };
于 2012-12-03T17:03:18.677 回答
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')); ?>
于 2015-07-03T08:23:07.593 回答