فقاعة الحدث وحدث Onblur
-
20-09-2019 - |
سؤال
أنا أكتب البرنامج النصي للتحقق من صحة النموذج وترغب في التحقق من صحة حقل معين عند حرائق حدث OnBlur. أود أيضا استخدام Pubbles الحدث، لذلك ليس لدي إرفاق حدث OnBlur لكل حقل نموذج فردي. لسوء الحظ، فإن حدث OnBlur لا فقاعة. فقط أتساءل عما إذا كان أي شخص يعرف حل أنيق يمكن أن ينتج عن نفس التأثير.
المحلول
PPK لديه تقنية لهذا، بما في ذلك الحلول اللازمة ل IE: http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html ..
نصائح أخرى
ستحتاج إلى استخدام التقاط الأحداث (بدلا من الفقاعات) للمتصفحات المتوافقة مع المعايير و focusout
ل IE:
if (myForm.addEventListener) {
// Standards browsers can use event Capturing. NOTE: capturing
// is triggered by virtue of setting the last parameter to true
myForm.addEventListener('blur', validationFunction, true);
}
else {
// IE can use its proprietary focusout event, which
// bubbles in the way you wish blur to:
myForm.onfocusout = validationFunction;
}
// And of course detect the element that blurred in your handler:
function validationFunction(e) {
var target = e ? e.target : window.event.srcElement;
// ...
}
يرى http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html .. للحصول على تفاصيل العصير
استعمال 'التركيزالحدث لأنه يحتوي على تأثير فقاعة .. شكرا.
لاستخدام الفقاعة مع onblur
الحدث، ثم يمكنك استخدام AddEventListener () وتعيين المعلمة USECAPTURE إلى خاطئة. وبعد مثله:
yourFormInput.addEventListener('blur', yourFunction, false);
فايرفوكس 51 وما دون دعم onfocusout
حدث. لذلك لا تستخدم onfocusout
بدلاً من onblur
حدث.
AA، يمكنك ببساطة إضافة حدث OnBlur في النموذج، وسوف استدعاء التحقق من الصحة في كل مرة تقوم فيها بتغيير التركيز على أي من العناصر داخلها