Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Jquery/JS检测嵌套数据表单元格中输入字段的更改_Javascript_Jquery_Events_Datatables_Nested - Fatal编程技术网

Javascript 使用Jquery/JS检测嵌套数据表单元格中输入字段的更改

Javascript 使用Jquery/JS检测嵌套数据表单元格中输入字段的更改,javascript,jquery,events,datatables,nested,Javascript,Jquery,Events,Datatables,Nested,我有一个子数据表嵌套在数据表中。子表中的单元格具有输入类型编号字段,我希望检测字段的更改并获取新值。然而,我无法捕捉变化事件 输入字段具有如下类: <td><input type='number' class='edit_detect' name='input_field' value=1</td> 但函数从未运行,即事件从未注册 我似乎做错了什么?在动态添加元素时,需要像这样绑定事件: $('body').on('change keyup input', '.e

我有一个子数据表嵌套在数据表中。子表中的单元格具有输入类型编号字段,我希望检测字段的更改并获取新值。然而,我无法捕捉变化事件

输入字段具有如下类:

<td><input type='number' class='edit_detect' name='input_field' value=1</td>
但函数从未运行,即事件从未注册


我似乎做错了什么?

在动态添加元素时,需要像这样绑定事件:

$('body').on('change keyup input', '.edit_detect', function(event){
    console.log(event);
});
这样就可以绑定名为direct event的事件。还有一种称为委托事件(delegate event)的东西,它不会将事件绑定到DOM元素,但会从它们的父元素委托事件。父元素负责在匹配的子元素上执行事件。如果将新的子级添加到父级,父级将负责对其执行事件


我在这里使用body作为父级,但最好将事件绑定到第一个非动态父级。

为了精确选择,请在输入中使用使用id属性的唯一标识符

<td><input type='number' class='edit_detect' id='input-field' name='input_field' value=1</td>
或使用属性名称:

$("input[name=input_field]").change(function(event){
        alert($(this).val());
    })

您以前是否在页面末尾加载/放置JS链接/代码?我正在动态创建嵌套表。如果这是你的意思的话,它不在html主页面上。实际上,在我有意编写的代码中,我想检测表中许多单元格的变化,这就是为什么使用类名而不是唯一id的原因。
$("#input_field").change(function(event){
    alert($(this).val());
})
$("input[name=input_field]").change(function(event){
        alert($(this).val());
    })