jQuery不再设置复选框

时间:2015-07-29 19:15:20

标签: javascript jquery

以前我在this example工作的代码根据"选择所有"设置了相应的文本框。各自表格中的复选框。将此推送到办公室git服务器并转到验证服务器后,它不再有效。看一下控制台,没有弹出错误,jQuery似乎确实按原样执行。

jQuery代码如下:

function CheckboxClick(checkbox)
{
    var $name = $(checkbox).attr('name');
    if ($name.indexOf("ChannelPublish_") > 0 || $name.indexOf("hkDisplay_") > 0)
    {
        var $row = $(checkbox).closest("tr");
        if ($name.indexOf("ChannelPublish_") > 0)
        {
            SetDataBin($row, "txtPublishMessage_");
        }
        else if ($name.indexOf("hkDisplay_") > 0)
        {
            SetDataBin($row, "txtDisplay_");
        }
    }
    else if ($name == "chkRemoveAllNetworks")
    {
        $('td input:checkbox', '#tblNetworks').prop('checked', $(checkbox).checked);
    }
    else if ($name == "chkRemoveAllChannels")
    {
        $('td input:checkbox[name*="chkChannelRemove"]', '#tblChannels').prop("checked", $(checkbox).checked);
    }
}

全选复选框都有onclick='CheckboxClick(this)'

1 个答案:

答案 0 :(得分:3)

您需要将$(checkbox).checked替换为$(checkbox).is(':checked')才能生效。而不是直接在html中添加onclick,我在jquery中添加了它。所以你的复选框点击事件应该是这样的

$('input[name="chkRemoveAllNetworks"], input[name="chkRemoveAllChannels"]').on('click', function() {
    console.log($(this));
    CheckboxClick($(this));
});

您也可以将click替换为change,它也可以使用

$('input[name="chkRemoveAllNetworks"], input[name="chkRemoveAllChannels"]').on('change', function() {
    console.log($(this));
    CheckboxClick($(this));
});

这是一个有效的 JSFIDDLE