Readonly和Disabled這兩個表單中屬性的區別

 

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

Readonly只針對input(text / password)和textarea有效,而disabled對於所有的表單元素都有效,包括select, radio, checkbox, button等。但是表單元素在

使用了disabled後,當我們將表單以POST或GET的方式提交的話,這個元素的值不會被傳遞出去,而readonly會將該值傳遞出去(這種情況出現在我們將某個表單

中的textarea元素設置爲disabled或readonly,但是submit button卻是可以使用的)。

一般比較常用的情況是:

①在某個表單中爲用戶預填了某個唯一識別代碼,不允許用戶改動,但是在提交時需要傳遞該值,此時應該將它的屬性設置爲readonly

②經常遇到當用戶正式提交了表單後需要等待管理員的信息驗證,這就不允許用戶再更改表單中的數據,而是隻能夠查看,由於disabled的作用元素範圍大,所

以此時應該使用disabled,但同時應該注意的是要將submit button也disabled掉,否則只要用戶按了這個按鈕,如果在數據庫操作頁面中沒有做完整性檢測的話

,數據庫中的值就會被清除。如果說在這種情況下用readonly來代替disabled的話,若表單中只有input(text / password)和textarea元素,那還是可以的,如

果存在其他發元素,比如select,用戶可以在重新改寫值後按回車鍵進行提交(回車是默認的submit觸發按鍵)

③我們常常在用戶按了提交按鈕後,利用javascript將提交按鈕disabled掉,這樣可以防止網絡條件比較差的環境下,用戶反覆點提交按鈕導致數據冗餘地存入

數據庫。

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

是有一定區別的。

如果一個輸入項的disabled設爲true,則該表單輸入項不能獲取焦點,用戶的所有操作(鼠標點擊和鍵盤輸入等)對該輸入項都無效,最重要的一點是當提交表

單時,這個表單輸入項將不會被提交。

發佈了39 篇原創文章 · 獲贊 6 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章