当前位置: 首页 > 知识库问答 >
问题:

单击selectAll复选框后,“选择/取消选择”复选框不起作用

霍襦宗
2023-03-14

我有一个jQuery数据。它的一列由复选框组成,您可以在这里看到。现在,当我单击行上的复选框时,它们工作正常。我的意思是,它打印出单个选择类复选框中的一个被选中,或者单个选择类复选框中的一个被取消选中,因为我在事件处理程序中添加了这些。但是,如果我单击全部选择一次,我的单个复选框将不再运行(它不会打印这些消息)。选择所有复选框,看起来工作正常。(选择所有单独的框)。这是我的全选和单选复选框相关代码:

选择所有处理程序:

$('input[type="checkbox"][id="selectAll"]').click(function () {
    if ($(this).prop("checked") == true) {
        converter.checkAll(true);

    } else if ($(this).prop("checked") == false) {
        converter.checkAll(false);
    }
});

检查所有功能

Converter.prototype.checkAll = function (checktoggle) {
    var data = (this.resultTable).fnGetData();
    for (var i in data) {
        var row = $('<div>' + data[i][3] + '</div> ');

        row.children('input').attr('checked', (checktoggle) ? 'checked' : false);
        row.children('input').attr('id', 'singleSelect');
        console.log(row.html());

        (this.resultTable).fnUpdate(row.html(), parseInt(i, 10), 3, false, false);
    }
    (this.resultTable).fnDraw();
}

单选择处理程序

$('input[type="checkbox"][id="singleSelect"]').click(function () {

    alert("asdasdasdasd");
    if ($(this).prop("checked") == true) {
        alert('one of the single select class checkbox is checked');
    } else if ($(this).prop("checked") == false) {

        alert('one of the single select class checkbox is unchecked');
    }
});

共有3个答案

周翰
2023-03-14

我们可以通过使用子行的复选框名称来选中/取消选中jquerydatatable。

<script type="text/javascript">
    $(function () {
        $("#chkAll").click(function () {
            $("input[name='employees']").attr("checked", this.checked);
        });
        $('#example').DataTable({
        });
    });
</script>

<table id="example" class="display" cellspacing="0" width="100%">
        <thead>
            <tr>
                <th align="left"><input type="checkbox" id="chkAll" /></th>
                <th>Name</th>
                <th>Position</th>
                <th>Salary</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td><input type="checkbox" name="employees" /></td>
                <td>Tiger Nixon</td>
                <td>System Architect</td>
                <td>$320,800</td>
            </tr>
            <tr>
                <td><input type="checkbox" name="employees" /></td>
                <td>Garrett Winters</td>
                <td>Accountant</td>

                <td>$170,750</td>
            </tr>
          </tbody>
    </table>

它适用于更多细节http://www.infinetsoft.com/Post/How-to-check-all-rows-in-jQuery-datatables-grid/1255

仇航
2023-03-14

问题似乎是

$('input[type=“checkbox”][id=“selectAll”]')。单击(函数(){

使用选择器[id=“selectAll”]输入时调用jsat post不会取消选中所有复选框,而是创建新的input元素,其中checked属性通过参数checktoggle

那么我应该怎么做才能解决这个问题呢?

如果问题中未包含html,则很难确认。尝试利用。each(),设置此。在回调中选中

$('input[type="checkbox"][id="selectAll"]').click(function (e) {
  $("input[type=checkbox]").each(function() {
    if ($(e.target).prop("checked") == true) {
        this.checked = true;
        converter.checkAll(true);

    } else  {
        this.checked = false;
        converter.checkAll(false);
    }
  })
});
谈阎宝
2023-03-14

使用此模式

选择所有处理程序:

// note change event
$('input[type="checkbox"][id="selectAll"]').change(function () {
        converter.checkAll($(this).prop("checked"));
});

检查所有功能

Converter.prototype.checkAll = function (checktoggle) {
    var data = (this.resultTable).fnGetData();
    for (var i in data) {
        var row = $('<div>' + data[i][3] + '</div> ');

        row.children('input').prop('checked', checktoggle) ;
        row.children('input').attr('id', 'singleSelect');
        console.log(row.html());

        (this.resultTable).fnUpdate(row.html(), parseInt(i, 10), 3, false, false);
    }
    (this.resultTable).fnDraw();
}

单选择处理程序

$('input[type="checkbox"][id="singleSelect"]').change(function () {

    alert("asdasdasdasd");
    if ($(this).prop("checked") == true) {
        alert('one of the single select class checkbox is checked');
    } else if ($(this).prop("checked") == false) {

        alert('one of the single select class checkbox is unchecked');
    }
});
 类似资料:
  • 我有几个复选框。基于JSON响应(通过ajax-requests加载数据),我使用.prop()函数设置和重置复选框的默认值。问题是,如果我手动改变它们,它们显然不会改变这种行为。我不能通过$('#checkbox:checked').val()传递复选框的值,控制台日志显示为'undefined'。这是因为.prop()函数吗?如何获取选中复选框的值? 如果你需要更多的信息,我很乐意提供。这里有

  • 下载整个项目。zip在这里 此问题的代码在Views文件夹中的CreateSchedule.aspx文件中。 以下是GridView的ASP.NET: 在取消选中某个框后调试事件时,网页上的复选框显示为未选中,但的值为true,即使该复选框在网页上显示为未选中。(chkRow是未选中的复选框) 更新3 我取得了一些突破。我发现复选框的问题在于嵌套的gridview位于使用JavaScript折叠和

  • 如果选中复选框D并取消选中其他复选框,我希望选中复选框K和F。同样,如果选中复选框I,则前面的复选框I将被选中,下面的复选框将被取消选中。我的html代码是: 我为此所做的是: 这看起来很乱,还有一个很酷的过程吗???

  • 如问题所述,当选中标题中的“全选”复选框时,我已经可以选中gridview行中的复选框,当取消选中标题中的“全选”复选框时,取消选中gridview行中的复选框。我想做的是,当没有选中行中的所有复选框时,则不选中标题中的“全选”复选框,反之亦然(当选中行中的所有复选框时,则选中标题中的“全选”复选框)。 我该怎么做? 我已经做了我想要实现的,但是标题中的复选框开始影响(选中或取消选中),即使我只选

  • 我创建了一个windows窗体(到目前为止)只包含复选框。构造函数接受一个参数:。对于这个数组中的每个字符串,我都会创建一个复选框。 例如: null 那么,当另一个复选框调用uncheck时,是否有一种方法可以告诉我的复选框不要运行? 下面是我的代码(它都是手工编写的,所以没有使用visual studio设计器):

  • 我试图创建一个表单,该表单顶部有一个复选框,当用户选中该复选框时,它会选择其他特定的复选框,但不是所有复选框。我很难通过反复试验或搜索找到答案。我唯一能找到的就是“全选”选项。不是我想要的。 理想情况下,当用户选中“管理包”旁边的复选框时,我想要“Chrome外观组”和“远程启动” 下面是代码和我在这方面的基本尝试,但它不起作用。提前谢谢。 超文本标记语言: Javascript 我不知道这个Ja

  • 本文向大家介绍jQuery实现复选框全选/取消全选/反选及获得选择的值,包括了jQuery实现复选框全选/取消全选/反选及获得选择的值的使用技巧和注意事项,需要的朋友参考一下

  • 问题内容: 我有一个Django应用程序,想要在用户的个人资料中显示多个选择复选框。然后,他们将能够选择多个项目。 这是我的models.py的简化版本: 和我的形式课: 还有我的views.py: 我可以看到POST仅发送一个值: 并且本地vars参数正在发送一个列表: 所有表单字段都显示正确,但是当我提交POST时,我得到一个错误 错误绑定参数7-可能是不受支持的类型。 我是否需要在视图中进一