關於Textarea的注意事項

2021-06-20 16:47:31 字數 899 閱讀 9724

為什麼要特別提textarea?因為其實textarea這個節點很特殊。而因為這個節點特殊,所以在ie和其它瀏覽器下,對它的解釋不一樣。

賣一下關子,哈哈!其實主要原因是今天幫乙個師兄修乙個bug,具體是因為從伺服器拉資料下來插進textarea的時候失敗,這個情況只在ie出現。其它瀏覽器一切正常!

首先,為什麼textarea特殊?在所有的表單外掛程式裡面,textarea的值是寫在兩個開閉標籤之間的,所以它的值在dom的角度可以看作是文字節點,這是textarea特有的。也正因為這個特性,所以當你修改它的innerhtml的值時你仍然可以改變textarea的文字,而ie雖然支援這樣做,卻不允許一件事:動態插入一些html標籤。

你不妨做乙個實驗:

在ie下通過js插入一段html**,用的是innerhtml屬性而不是value或者innertext。

ie9+我是沒有去測試,但是ie6、7、8都會報錯。

估計是出於安全的原因,所以才不允許js動態插入html進textarea,但細心的人可以發現,其實如果你手動鍵入html**的話,textarea是可以接受的。我想其實這經歷了這樣乙個過程:字元轉義。對的,這是唯一能夠解釋手動輸入html**成功的原因了。

所以,在我看來,既然那麼多的瀏覽器的textarea都不支援html的顯示,為何js操作的時候還要用innerhtml屬性呢?也就是說無論你用value插入html**還是用innerhtml插入html**,它都不會解析後顯示(所以才會有富文字編輯器代替textarea),那麼為什麼不用value去設定textarea的值呢?

所以我認為,設定textarea的值不應該通過innerhtml(當然更不可能是innertext,因為firefox的原因),而要通過value去設定。這一點是開發人員要注意的。因為最近看的一些童鞋的**老喜歡用innerhtml。其實我認為這都是要分場合的。

textarea取值注意事項

1.ie8 無論輸入 val還是text,jquery都能設定和獲取textarea中的實際內容,這個比較符合我們想要的結果 2.chorme 使用者輸入的內容在val中,設定text時,會同時設定val,設定val時,不影響text,innerhtml的內容同text 3.firefox,opea...

關於new注意事項

file main.cpp author vicky include include include class user user const char username virtual user void sayhello char username 20 int main void 建立乙個u...

關於Cookie注意事項

細節決定成敗,小細節絆住大腳。1.cookie 儲存時 key不能使用分號 逗號 等 號 以及空格。如 設定key為 aa.aspx?id 1 最後儲存的cookie key結果為aa.aspx?id 系統遇到等號時,後面的字串自動擷取掉了。2.同樣,cookie 儲存時 值不能使用分號 逗號 等 ...