شايد براي كمتر كسي اين عيب IE دردسر ساز بشه اما وقتي هم بشه حدس وجود اين باگ شايد كار ساده اي نباشه .
مشكل از اونجا پيش مياد كه دوباره IE هر كاري دلش خواسته كرده و استاندارد W3C رو رعايت نكرده .
بر طبق استاندارد موجود دستور getElementById() بايد المنتهايي رو برگردونه كه تنها خاصيت IDاونها برابر با مقدار مورد نظر باشه .
براي مثلا وقتي شما از اين دستور استفاده ميكنيد :
<script lnaguage="javascript">
var el = document.getElementById('fname');
</script>المنتي كه IDاون fname هست در متغغير el قرار ميگيره .
اما مرورگر مايكروسافت براي اين كه شما بي نصيب نمونيد و يه خيري ببريد آخر سال كه هم هست دست خالي نريد نگاه ميكنه ميبينه المنتهايي كه خاصيت name اونها هم مچ بشه به عنوان جواب برميگردونه .
شايد در نگاه اول بگيد خوب اين كه خيلي هم بد نيست اما وقتي موقيعيتي كه براي من پيش اومد براي شما هم پيش بياد متوجه ميشيد كه باعث دردسر بسيار بزرگي هست .
مشكل اين بود كه فرمي طراحي كرده بودم كه برا اساس ID المنتها تصميم گيري ميكرد و مثلا براي مقدار boolean از دو دكمه راديويي استفاده ميشد . علاوه بر اين مقدار اون بايد براي سرور فرستاده ميشه و با نام yes و no .
اين صفحه در همه ي مرورگرها كار ميكرد اما در IE با مشكل يكي در ميون مواجه ميشد .
من كه آن زمان از وجود اين باگ اطلاع نداشتم كلي وقت صرف ديباگ كردن برنامه گذاشتم تا آخر با طرح يك مثال ساده متوجه شدم كه مشكل از IE هست .
به مثال زير توجه كنيد :