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;
}

ただし、 IEMobileでは機能しません。

次のコードを試しましたが、少なくともイベントが発生し、ハンドラー関数が呼び出されましたが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 に答える