在交换事件javascript上动态添加行

时间:2015-03-31 12:44:02

标签: javascript

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

element1.onchange=checkInputValue(element1.id);

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

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

和内部" testInputElement",调用onchange事件并且函数正常工作。有什么用?为什么我们需要在函数内部传递函数? 还有其他方法吗? TIA

1 个答案:

答案 0 :(得分:1)

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

你想要做的是分配一个应该在元素改变时执行的函数,你在第二个例子中正确地做了。

如果您不想将新功能传递给onchange,则可以修改checkInputValue以接受change event。 change事件包含有关事件源自何处的信息,包括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;