سؤال

أحتاج إلى اكتشاف معرف العنصر الذي ولدت حدث onchange.

هذا الرمز يعمل في معظم المتصفحات الحديثة:

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

هل هناك أي طريقة للحصول على إشارة إلى الحدث المستقل؟ أو نهج بديل لمعرفة معرف العنصر الذي تسبب في الحدث.

هل كانت مفيدة؟

المحلول

سيكون الحل البديل هو تمرير العنصر إلى رد الاتصال: (لم يتم اختباره)

<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