如何在Datatables选中复选框时启用/禁用按钮

时间:2016-04-28 08:38:54

标签: javascript jquery checkbox datatables

如果我的数据表中有选定的复选框行,如何启用/禁用我的按钮?

var pctoreceive = $('#pcToReceive').DataTable({
           'columnDefs': [{
                'targets': 0,
                'searchable': false,
                'orderable': false,
                'className': 'dt-body-center',
                'render': function (data, type, full, meta) {
                    return '<input type="checkbox" name="id[]" value="'
                       + $('<div/>').text(data).html() + '">';
                }
            }],

我缩短了我的代码。上图显示我为checkbox select

添加了一个新列

enter image description here

当没有选定的行时,必须禁用这两个按钮。否则启用

$('#rc-select-all').on('click', function() {
    // Check/uncheck all checkboxes in the table
    var rows = pctoreceive.rows({
        'search': 'applied'
    }).nodes();
    $('input[type="checkbox"]', rows).prop('checked', this.checked);
});

// Handle click on checkbox to set state of "Select all" control
$('#pcToReceive tbody').on('change', 'input[type="checkbox"]', function() {
    // If checkbox is not checked
    if (!this.checked) {
        var el = $('#rc-select-all').get(0);
        // If "Select all" control is checked and has 'indeterminate' property
        if (el && el.checked && ('indeterminate' in el)) {
            // Set visual state of "Select all" control 
            // as 'indeterminate'
            el.indeterminate = true;
        }
    }
});

1 个答案:

答案 0 :(得分:1)

您的问题与数据表无关。

只需设置一个计数器变量来存储检查输入检查的数量,然后如果&gt; 0启用按钮。

请参阅此小例(和fiddle

var counterChecked = 0;

$('body').on('change', 'input[type="checkbox"]', function() {

    this.checked ? counterChecked++ : counterChecked--;
    counterChecked > 0 ? $('#submitButton').prop("disabled", false): $('#submitButton').prop("disabled", true);

});