這篇文章主要介紹了表單中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,則表單輸入項目不能取得焦點,使用者的所有操作(滑鼠點擊和鍵盤輸入等)對此輸入項目都無效,最重要的一點是當提交表單時,這個表單輸入項目將不會被提交。
而readonly只是針對文本輸入框這類可以輸入文本的輸入項,如果設為true,用戶只是不能編輯對應的文本,但是仍然可以聚焦焦點,並且在提交表單的時候,該輸入項會作為form的一項提交。
//兩種方法設定disabled屬性
$('#areaSelect').attr("disabled",true);
$('#areaSelect').attr("disabled","disabled");
//三種方法移除disabled屬性
$('#areaSelect').attr("disabled",false);
$('#areaSelect') .removeAttr("disabled");
$('#areaSelect').attr("disabled","");
以上就是本文的全部了,希望大家能夠喜歡。
【相關教學推薦】
1. CSS影片教學
2. CSS線上手冊
3. bootstrap教學