【问题标题】:Check and uncheck all the check boxes and perform action using drop down menu选中和取消选中所有复选框并使用下拉菜单执行操作
【发布时间】:2014-02-03 20:24:08
【问题描述】:

在我的表格中,我有一列用于复选框,当用户勾选它应该选择下面的所有其他复选框时,如果我再次单击它,则该功能会取消选择所有复选框。我还添加了下拉菜单,因此如果用户勾选第一个框并选择添加选项,那么它应该调用一些 ajax 方法。这就是我所做的:

 var ajReq = new XMLHttpRequest();
    $(document).ready(function () { Table();});

function Table(data) {
        var DisplayTable = '<table><tr><th>Name</th><th>Name2</th><th><input type="checkbox" id="SelectCheckbox"/></th></tr>';
        var counts= 0;
        for (var getdata in data) {
            var row = '<tr class=\'row\'select=\'' + data[getdata ].ID+ '\'</tr>';

            counts+= '<td>' + data[getdata].Name+ '</td>';
            counts+= '<td>' + data[getdata].Name2+ '</td>'


            counts+= '<td><input type="checkbox" class="SomeAjaxMethod" methd-DoSomething= "' + data[getdata ].ID+'"></td>'

            counts++;
            DisplayTable += counts;
        }
  table += '</table></div>';
        $('#DisplayTable').html(DisplayTable ); }

        <div id="DisplayTable"></div>

$(function () {
        $("#SelectCheckbox").click(function () {
            $(".SomeAjaxMethod").attr('checked', this.checked);
        });

        $(".SomeAjaxMethod").click(function () {
            if (this.checked == false) {
                $("#SelectCheckbox").attr('checked', false);
            }
        });
    });

当我向#SelectCheckBox 添加断点时,它会在页面加载时执行,它应该在我选中一个复选框后执行。 我也在使用下拉菜单来执行一些操作,我如何将复选框附加到下拉菜单,例如在选择了我要删除的所有员工之后,我已经写了 SQL 删除语句我只想知道如何我将复选框与我的下拉菜单链接。这是我的下拉菜单:

<div class="dropdown">
    <div class="btn-group">
        <button type="button" id="id1" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
            Select...
  <span class="caret"></span>
        </button>
        <ul class="dropdown-menu">
            <li><a class="Delete-staff">Attended Detention</a></li>
            <li><a class="Edit-Staff">Letter Sent</a></li>
        </ul>
    </div>
</div>

【问题讨论】:

标签: javascript jquery


【解决方案1】:

为带有复选框的列添加一个 CSS 类。然后使用 jQuery 同时选中/取消选中每个复选框。您的 HTML 应如下所示:

<table id="myTable">
    <tr><th>Name</th><th>Name2</th><th><input type="checkbox" 
        id="SelectCheckbox"/></th></tr>
    <tr>
        <td>Name1 from row 1</td>
        <td>Name2 from row 1</td>
        <td class="check"><input type="checkbox" class="SomeAjaxMethod"
            onclick="method_DoSomething('id-from-row-1')"></td>
    </tr>
    ... (more rows
</table>

你的 JavaScript 是这样的:

function checkUncheckEverything() {
    var isChecked = $('#SelectCheckbox').is(':checked');
    $('#myTable > tbody > tr > td.check > input').prop('checked', isChecked);
}
$('#SelectCheckbox').on('click', checkUncheckEverything);

【讨论】:

  • 我想避免使用 HTML,我正在通过 JavaScript 构建我的表格。
  • @user3195896 我在想你可以重写你的 JavaScript 来输出 HTML,就像我的例子一样。我很懒...
  • 我已经尝试过了,但它不起作用,我可以在我的问题中显示的表格中有一个 id 并将其传递给 checkUncheckEverything 函数。因为我尝试在我的桌子上添加一个 id 并运行一个简单的 onclick 函数来提醒一些东西。但是当我单击该复选框时,不会出现任何警报。不知道为什么?
  • 我不明白你想说什么。请使用jsfiddlehttp://htmledit.squarefree.com/ 举例,以便我进行测试。
  • (jsfiddle.net/Y5pDF/#&togetherjs=SIbVbxSTLS) 从这里您可以看到我正在创建一个表格,当您单击该复选框时,其中一列是一个复选框。我的系统应该提醒我已将 ID 作为 SelectCheckbox 提供给我的复选框并将其传递给 onclick 函数,但它不起作用。我从来没有使用过 jfiddle,但这是我能做的最好的。此答案与我的问题无关,但可以帮助我解决问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 2021-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-01
相关资源
最近更新 更多