1

我需要检测生成 onchange 事件的元素的 id。

此代码适用于大多数现代浏览器

<input type="text" onchange="return onchange_handler(event);"

function onchange_handler(event) {
    var id = event.target ? event.target.id : event.srcElement.id;
    ...
    return false;
}

但它在IE Mobile中不起作用。

我已经尝试了以下代码,并且至少触发了事件并调用了处理程序函数,但是window.event在调用事件处理程序时不可用:

<input type="text" onchange="return onchange_handler();"

function onchange_handler() {
    var event = window.event; // <= evaluated as UNDEFINED
    var id = event.target ? event.target.id : event.srcElement.id;
    ...
    return false;
}

有没有办法获得对触发事件的引用?或者另一种方法来了解导致事件的元素的 id。

4

1 回答 1

2

一种解决方法是将元素传递给回调:(未经测试)

<input type="text" id="mytextbox" onchange="return onchange_handler(this);"

function onchange_handler(element) {
    var id = element.id;
    ...
    return false;
}
于 2009-11-18T07:33:31.610 回答