【问题标题】:Dynamically added rows onchange event javascript动态添加行 onchange 事件 javascript
【发布时间】:2015-03-31 12:44:02
【问题描述】:

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

element1.onchange=checkInputValue(element1.id);

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

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

在“testInputElement”内部,onchange 事件被调用并且函数运行良好。这个有什么用?为什么我们需要在函数内部传递函数? 还有其他方法吗? TIA

【问题讨论】:

标签: javascript


【解决方案1】:

onchange 属性允许您指定一个函数,只要该元素发生变化,就应该执行该函数。在您的第一个示例中,您将 checkInputValue 的返回值分配给 onchange,该元素无法执行。

您要做的是分配一个在元素更改时应执行的函数,这在第二个示例中是正确的。

如果您不想将新函数传递给onchange,则可以改为修改checkInputValue 以接受change event。 change 事件包含有关事件起源的信息,包括元素。

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; 

【讨论】:

    猜你喜欢
    • 2017-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    • 1970-01-01
    • 2015-10-16
    相关资源
    最近更新 更多