2011-10-11 28 views
314

我已經閱讀了一些,但我似乎無法找到任何關於不同瀏覽器如何處理事情的可靠信息。我構建的應用必須符合Section 508(屏幕閱讀器可訪問)並且可以清除回IE 6。對於HTML表單輸入字段,disabled =「disabled」和readonly =「readonly」有什麼區別?

+0

安迪:你提到的textarea的,但我們不能一概而論你的問題的所有HTML表單輸入字段? @oezi的(v好)答案似乎是這樣做的。如果您沒有問題,我會更新您的問題。 –

+0

相關:「如何模擬select標籤的readonly屬性,並仍然獲取POST數據?」 http://stackoverflow.com/questions/368813/html-form-readonly-select-tag-input –

回答

534

A readonly元素只是不可編輯的,但在根據form提交時發送。 disabled元素不可編輯,並且在提交時不會發送。另一個區別是,readonly元素可以被聚焦(並且在通過表單「掛鉤」時變得更加集中),而disabled元素不能。

瞭解更多關於這this great articlethe definition by w3c。引述重要的部分:

主要差異

disabled屬性

  • 值供殘疾人使用的形式的元素並不傳遞到處理器的方法。在W3C稱這種成功的元素。(這個工作原理類似於未籤 形式複選框。)
  • 一些瀏覽器可以覆蓋或提供禁用的表單元素的默認樣式。 (灰色或浮雕文字)Internet Explorer 5.5對此特別討厭。
  • 禁用的表單元素不接收焦點。
  • 殘疾人表單元素被跳過在跳格導航。

只讀屬性

  • 並非所有的表單元素有一個只讀屬性。最值得一提的<SELECT><OPTION><BUTTON>元素沒有隻讀屬性 (雖然你都有殘疾屬性)
  • 瀏覽器沒有提供默認覆蓋視覺反饋表單元素是隻讀的。 (這可能是一個問題......請看下文。)
  • 與只讀屬性設置表單元素將會得到傳遞給表單處理。
  • 只讀形式元素可以接收焦點
  • 只讀形成元件包括在標籤式導航。
+4

只讀元素上不能使用CTRL + C,但你可以用鼠標右鍵單擊並選擇複製。 – Rumplin

+6

@Rumplin你確定嗎?我剛剛測試過,並且能夠在OS X上的Chrome中使用鍵盤快捷鍵進行復制。 – evanrmurphy

+5

「並非所有表單元素都具有隻讀屬性。最值得注意的是,