html input readonly 和 disable的區別

來源:互聯網
上載者:User

Readonly和Disabled它們都能夠做到使使用者不能夠更改表單域中的內容。但是它們之間有著微小的差別,總結如下:

     Readonly只針對input(text / password)和textarea有效,而disabled對於所有的表單元素都有效,但是表單元素在使用了disabled後,當我們將表單以POST或GET的方式提交的話,這個元素的值不會被傳遞出去,而readonly會將該值傳遞出去(readonly接受值更改可以回傳,disable接受改但不回傳資料)。

一般比較常用的情況是:

  1. 在某個表單中為使用者預填了某個唯一識別代碼,不允許使用者改動,但是在提交時需要傳遞該值,此時應該將它的屬性設定為readonly 。
  2. 經常遇到當使用者正式提交了表單後需要等待管理員的資訊驗證,這就不允許使用者再更改表單中的資料,而是只能夠查看,由於disabled的作用元素範圍大,所以此時應該使用disabled,但同時應該注意的是要將submit button也disabled掉,否則只要使用者按了這個按鈕,如果在資料庫操作頁面中沒有做完整性檢測的話,資料庫中的值就會被清除。如果說在這種情況下用readonly來代替disabled的話,若表單中只有input(text / password)和textarea元素,那還是可以的,如果存在其他發元素,比如select,使用者可以在重新改寫值後按斷行符號鍵進行提交(斷行符號是預設的submit觸發按鍵)
  3. 我們常常在使用者按了提交按鈕後,利用javascript將提交按鈕disabled掉,這樣可以防止網路條件比較差的環境下,使用者反覆點提交按鈕導致資料冗餘地存入資料庫。

disabled和readonly這兩個屬性有一些共同之處,比如都設為true,則form屬性將不能被編輯,往往在寫js代碼的時候容易混合使用這兩個屬性,其實他們之間是有一定區別的:

  • 如果一個輸入項的disabled設為true,則該表單輸入項不能擷取焦點,使用者的所有操作(滑鼠點擊和鍵盤輸入等)對該輸入項都無效,最重要的一點是當提交表單時,這個表單輸入項將不會被提交。
  • 而readonly只是針對文本輸入框這類可以輸入文本的輸入項,如果設為true,使用者只是不能編輯對應的文本,但是仍然可以聚焦焦點,並且在提交表單的時候,該輸入項會作為form的一項提交。

原文地址:http://www.cnblogs.com/zcy_soft/archive/2011/09/19/2181211.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.