disabled 與 readonly的幾點異同
同:
(1)它們都能讓相應的元素節點變得不可編輯;
(2)它們都是元素的直接屬性而不是css屬性,如:document.getElementById("id").readonly = true;
(3)它們的取值都是boolean類型的,而不是string類型的,當document.getElementById("id").readonly = "false"寫成這樣時會無效,當然有時你寫成“true”會有效,這是因爲js的解析,當字符串不是空串時,在需要的情況下會自動轉換爲true,相反也成立;
異:
(1)readonly的作用範圍更加廣泛,(如:input、textarea、radio、select、checkbox、button等),而disabled的作用範圍要窄一些,它只針對input、textarea等;
(2)用readonly元素仍然能獲得焦點,而disabled則讓元素不能獲得焦點(這點我在項目中遇到過一個應用:從後臺查出來一些數據在前臺進行展示,用戶不能進行編輯只能查看,當時有一條數據是要放在textarea中進行展示的,開始用的disabled但是後來發現用display元素不能獲得焦點,textarea就不能顯示滾動條,導致數據多了顯示不完全,最後用readonly解決的問題)
(3)用表單提交數據時,readonly的元素能提交出去數據,而用disabled的元素不能提交數據
經驗:
具體用那種屬性,要結合你自身的需求,但是在我們項目組中用disabled多一些,因爲它能給人一種更直觀的不能編輯的感覺,用戶體驗要好一點