input disabled不能提交表單

今天,在開發過程中發現一個問題,在提交form表單時,有一個input一直不能被提交,後臺一直報錯!究其原因,是因爲該input上設置了disabled屬性。然而,有時我們又不得不設置某些元素爲不可操作的,建議使用readonly替之。

一、readonly & disabled區別

readonly和disabled是用在表單中的兩個屬性,它們都能夠做到使用戶不能夠更改表單域中的內容。
disabled:對於所有的表單元素都有效,包括select, radio, checkbox, button等。如果一個輸入項的disabled設爲true,則該表單輸入項不能獲取焦點,用戶的所有操作(鼠標點擊和鍵盤輸入等)對該輸入項都無效,最重要的一點是當提交表單時,這個表單輸入項將不會被提交。
readonly:只針對input(text / password)和textarea有效;如果設爲true,用戶只是不能編輯對應的文本,但是仍然可以聚焦焦點,並且在提交表單的時候,該輸入項會作爲form的一項提交。

二、常用的情況

1. 在某個表單中爲用戶預填了某個唯一識別代碼,不允許用戶改動,但是在提交時需要傳遞該值,此時應該將它的屬性設置爲readonly。
2. 經常遇到當用戶正式提交了表單後需要等待管理員的信息驗證,這就不允許用戶再更改表單中的數據,而是隻能夠查看,由於disabled的作用元素範圍大,所以此時應該使用disabled,但同時應該注意的是要將submit button也disabled掉,否則只要用戶按了這個按鈕,如果在數據庫操作頁面中沒有做完整性檢測的話,數據庫中的值就會被清除。
如果說在這種情況下用readonly來代替disabled的話,若表單中只有input(text/password)和textarea元素,那還是可以的,如果存在其他發元素,比如select,用戶可以在重新改寫值後按回車鍵進行提交(回車是默認的submit觸發按鍵)。

三、小技巧

1. diabled可用readonly代替,background-color:#cccccc;加上灰色背景色就可以。

2. disabled和readonly的文本輸入框只能通過腳本進行修改value屬性。


原文鏈接:http://blog.csdn.net/ligang2585116/article/details/44921967

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章