JQuery Checkboxes不会改变.prop的视觉状态("选中",true)

时间:2014-11-24 05:14:48

标签: javascript jquery checkbox

我已经尝试了所有我想要做的工作,但我仍然无法做到。

我需要的只是一个"全选"复选框,对每个元素执行循环以设置其类并将其id保存在会话变量中。到目前为止,我得到了这段代码的每一部分,除了直观地看到复选框。

这是我的代码:

$('#all').on('change', function () {
    if($(this).is(':checked')){
        table.$("input[type='checkbox']").each( function() {
            console.log($(this).attr("id"));
            $(this).prop( "checked" ,true);
            console.log($(this).prop("checked"));
            var id=$(this).attr("id").split('_')[1];
            var id_row=table.row("#row_"+id).index()+1;
            $("#tabla_equipos tr:nth-child(" + id_row + ")").addClass('active');
            $("table.DTFC_Cloned>tbody tr:nth-child(" + id_row + ")").addClass('active');
            funcChechboxes('{{ path('user_session_set')}}',id,'single');
        });
    }else{
        //more code
    }
});

我确实在控制台上获得了复选框id,并且" true"他们"检查"的价值道具......即使班级被应用,但也不是框中的漂亮标记。

控制台:

e_1
true
e_2
true
e_3
true
e_5
true

非常感谢任何帮助!

问候。

3 个答案:

答案 0 :(得分:1)

查看http://jsfiddle.net/xnxgm1m6/2/

$(document).ready(function(e){
$("#selectall").click(function(){
    var b = false;
    if($(this).is(":checked"))
        b = true;
    $("#table").find("tr").each(function(){
        $(this).find('input[type="checkbox"]').each(function() {
            $(this).prop("checked", b);
            var id=$(this).attr("id").split('_')[1];
            if(b)
                $("#table tr:nth-child(" + id + ")").addClass('active');
            else $("#table tr:nth-child(" + id + ")").removeClass('active');
            //DON'T KNOW WHAT THIS IS FOR
           // $("table.DTFC_Cloned>tbody tr:nth-child(" + id_row + ")").addClass('active');
        //funcChechboxes('{{ path('user_session_set')}}',id,'single');

        });
    });
});

我认为是你想要的。希望有所帮助。

答案 1 :(得分:1)

最后我明白了:因为我正在使用DataTable fixedColumns ,这个api 克隆我的表(是的,现在我有2个表!),我指向错误的表(克隆现在有复选框)。

所以最终的工作代码是这样的:

$('#all').on('click', function () {
    if($(this).is(':checked')){
            $("table.DTFC_Cloned>tbody").find("input[type='checkbox']").each( function() {
                $(this).prop("checked", true).change();
                var id=$(this).attr("id").split('_')[1];
                var id_row=table.row("#row_"+id).index()+1;
                $("#tabla_equipos tr:nth-child(" + id_row + ")").addClass('active');
                $("table.DTFC_Cloned>tbody tr:nth-child(" + id_row + ")").addClass('active');
                funcChechboxes('{{ path('user_session_set')}}',id);
            });
        }else{

感谢帮助人员!

答案 2 :(得分:0)

这可以用。

来解决
$("#checkbox-reminder").prop("checked", true).checkboxradio();
$('#checkbox-reminder').checkboxradio('refresh');

有关详细信息,请参阅此thread