最近在作東西時候使用到了label標籤,因爲以前不多使用label標籤,因此就遇到一個很奇怪的問題。什麼問題呢?下面來看一個效果css
html
這個demo要實現的目的是在點擊登陸按鈕的時候校驗用戶輸入的用戶名、密碼是否合法,若是不合法就在用戶名輸入框下面提示錯誤信息。
提示錯誤信息的元素計劃用label實現。
經過運行代碼打開demo頁面,點擊登陸按鈕,看會有什麼變化。若是使用的是Firefox、Chrome或者IE9+,則點擊登陸按鈕以後會提示
「用戶名錯誤」,這是想要的結果。若是使用的是IE6, 7, 8如何一個再看看會有什麼變化呢?這時候發現頁面沒有提示出來信息,
打開開發人員工具,看下控制這時候會發現提示出來錯誤信息「SCRIPT600: 未知的運行時錯誤 」。遇到這個問題的時候嘗試了innerText和innerHTML
兩種方法,發現都會報這樣的錯誤,覺得是使用方法不對去
w3cschool上面查了下發現也沒有說不支持innerText和innerHTML的。
到底爲何會在IE6, 7, 8提示這樣的錯誤而Firefox, Chrome, IE9+(其餘瀏覽器沒有嘗試)運行正常呢。細心的人可能一下就看出問題在哪裏了,
對於提示「用戶名錯誤」的元素開始標籤寫成了「lable」而不是label。可是我當時就沒有發現這問題,一直覺得是label標籤使用方式上出現了問題呢,至於
爲何IE6, 7, 8的JS引擎會在操做這種把標籤名寫錯的元素的innerText、innerHTMl屬性時出現錯誤,而Firefox、Chrome和IE9+沒有出現錯誤,
不是很清楚,若是有對這方面比較瞭解的朋友請解釋下吧。
這個問題其實挺低級的,把標籤名寫錯了嘛。可是當時本身就沒有發現,後來仔細研究了一下才發現這個問題,因此仍是記錄一下。