我需要检测生成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;
}

但是它不起作用 即手机.

我已经尝试了以下代码,至少该事件已启动并调用处理程序功能,但是 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的替代方法。

有帮助吗?

解决方案

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

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

function onchange_handler(element) {
    var id = element.id;
    ...
    return false;
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top