0

我将 chechboxes 的类和 id 传递给 js 函数,并尝试使其动态地为任何复选框的 id 和类工作以选中所有复选框并取消选中所有复选框这里是 html

    <input type="checkbox" name="reply_status[]" <?=$checked;?>  class="memebers" value="<?=$status[$e]['mail_sent_id']?>">
            </td>
            <td>
                <input type="checkbox" name="send_invoice[]" <?=$checked_send_invoice;?>  class="send_invoice" value="<?=$status[$e]['mail_sent_id']?>">
            </td>
            <td>
                <input type="checkbox" name="invoice_paid[]" <?=$checked_invoice_paid;?>  class="invoice_paid" value="<?=$status[$e]['mail_sent_id']?>">
            </td>

<td>
         <input type="checkbox" id="check_all_re" name="check_all" onclick="checkall_members('memebers','check_all_re')">&nbsp;&nbsp;&nbsp;&nbsp;
                Check All
            </td>
            <td>
                <input type="checkbox" id="check_all_sv" name="check_all" onclick="checkall_members('send_invoice','check_all_sv')">&nbsp;&nbsp;&nbsp;&nbsp;
                Check All
            </td>
            <td>
                <input type="checkbox" id="check_all_ip" name="check_all" onclick="checkall_members('invoice_paid','check_all_ip')">&nbsp;&nbsp;&nbsp;&nbsp;
                Check All
            </td>

这是js函数

<script type="text/javascript">
function checkall_members(chechboxclass, chechboxid) {
    // var id = document.getElementById("check_all");
    alert();
    chechboxid = $('#' + chechboxid);
    chechboxclass = $('.' + chechboxclass);
    if (chechboxid.checked) {
        chechboxclass.attr('checked', 'checked');
    }
    else {
        chechboxclass.removeAttr('checked');
    }
}

任何帮助,将不胜感激

4

2 回答 2

3

用以下内容替换您的 if..else 块。

chechboxclass.prop('checked', chechboxid.prop('checked'));

顺便说一句,它是checkbox不是check box

要进一步改进您的代码,请去掉内联事件:

$('input[name="check_all"]').on('change', function() {
    $($(this).data('toggleAll')).prop('checked', this.checked);
});

现在您只需要在data-toggle-all=".send_invoice"这些复选框中添加等。参数值应该是您要使用该复选框切换的复选框的选择器。

如果您拥有所有name="check_all"元素 a ,您还可以通过使用而不是class加速选择器input.whatever_classinput[name="check_all"]

于 2012-05-11T11:30:13.277 回答
0

我已经为我的问题整理出了最简单的解决方案

 <script type="text/javascript">

function checkall_members(chechboxclass, chechboxid) {

    var checkbox = document.getElementById(chechboxid);
    chechboxclass = $('.' + chechboxclass);

    if (checkbox.checked) {
        chechboxclass.attr('checked', 'checked');
    }
    else {

        chechboxclass.removeAttr('checked');
    }
}
 </script>

我必须在同一个 javascript 库中获取 id elememt 这就是为什么它不起作用 var checkbox = document.getElementById(chechboxid); 谢谢你们帮助我

于 2012-05-12T13:24:10.663 回答