在change事件javascript上动态添加行

Dynamically added rows onchange event javascript

本文关键字:动态 添加行 javascript change 事件      更新时间:2023-09-26

Im使用javascript和jsp动态创建行。当特定单元格中的值发生更改时,将触发onchange事件并给出消息。当在java脚本中使用onchange事件时,首先我尝试直接传递id,

element1.onchange=checkInputValue(element1.id);

onchange事件即使在创建单元格时也会触发。后来我换了

element1.onchange = function(evt){ testInputElement(this.id); };

在"testInputElement"中,调用onchange事件,函数运行良好。这有什么用?为什么我们需要在函数内部传递函数?还有别的办法吗?TIA

onchange属性允许您指定一个函数,该函数应在元素更改时执行。在第一个示例中,将checkInputValue的返回值分配给onchange,元素无法执行该返回值。

您想要做的是分配一个函数,该函数应该在元素发生变化时执行,您在第二个示例中正确地做到了这一点。

如果不想将新函数传递给onchange,可以修改checkInputValue以接受更改事件。更改事件包含有关事件起源的信息,包括elemnt。

function handleOnChange(event) {
    var id = event.target.id;
    // do some stuff
}
// pass a reference to the function, rather than executing it.
// when element1 changes it will call handleOnChange, and pass an
// event object
element1.onchange = handleOnChange;