1. 程式人生 > >jsp頁面輸入框設定為只讀

jsp頁面輸入框設定為只讀

現象:開發中想jsp的input設定為只讀,使用者無法輸入引數

解決方案:

1:readonly屬性
jsp的input有readonly=“”的屬性,如果設定為
input type=”text” name=”name” value=”屬性” readonly=”true”>
這樣就實現了只讀屬性使用者將無法錄入資訊

2:onfocus=this.blur()屬性
在jsp的input加上onfocus=this.blur()屬性
input type=”text” name=”input” value=”屬性” onfocus=this.blur()>
這樣也可實現使用者無法錄入資料,但是這樣做也有一個問題:用它來去除連結取得焦點時外圍出現的虛線框,這行程式碼給使用者們帶來了巨大的困擾:這中斷了使用者的Tab鍵路徑,導致Tab游標無法聚焦頁面的下一個控制器(連結、表單域、object、image map等)

3:disabled屬性
input type=”text” name=”input” value=”屬性” 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觸發按鍵)。
3. 在資訊檢視的詳情頁面建議使用disabled,通常這樣的頁面是為了展示資訊的。
技巧


1. diabled可用readonly代替,background-color:#cccccc;加上灰色背景色就可以。
2. disabled和readonly的文字輸入框只能通過指令碼進行修改value屬性。(可以通過指令碼對值賦值,只是使用者無法錄入引數)