CheckBox事件未触发

时间:2019-03-14 15:36:06

标签: jquery

我正在使用一个jQuery Datatable,其中一列是一个复选框。因此,在选择它时,更改事件不会触发。这是我的代码...

image

-----------------数据表列-------------------

$("#divAddDocument").on("change", $("input[id*='addDocCheckbox_']"), function (e) {
    var checkboxId = e.target.id;
    var _index = checkboxId.substring(checkboxId.lastIndexOf('_') + 1, checkboxId.length);
    _docUpload.DmsDocumentsList[_index].IsGridItemSelected = true;
    if (_docUpload.IsCorrespondence) {
        $("input[id*='addDocCheckbox_']").each(function () {
            if (checkboxId != $(this).id) {
                $(this).prop("disabled", true);
                $(this).prop("checked", false);
                var _counter = $(this).id.substring($(this).id.lastIndexOf('_') + 1, $(this).id.length);
                _docUpload.DmsDocumentsList[_counter].IsGridItemSelected = false;
            }
        });
    }
});

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

主要问题是您需要在委托事件处理程序中提供一个字符串作为import React, { Component } from "react"; import Titles from "./components/Titles.js"; export class App extends Component { render() { return ( <div> <Titles /> </div> ); } } export default App; 的第二个参数,而不是您当前使用的jQuery对象。后者不起作用,因为在您尝试选择DOM时该元素不存在于DOM中,因此jQuery对象为空。这是固定版本:

on()

另一个问题是重复使用$("#divAddDocument").on("change", "input[id*='addDocCheckbox_']", function(e) { // your code... }); $(this).id不是jQuery对象的属性,因此它将始终返回id

要解决此问题,请使用Element本身的undefined属性:

id

或使用this.id 方法通过jQuery获取属性:

prop()

这是您逻辑的完整更新版本:

$(this).prop('id')