Readonly和Disabled 兩種屬性的寫法如下:
1贿讹、<input type="text" name="name" value="xxx" readonly="true"/>
2、<input type="text" name="name" value="xxx" disabled="true"/>
共同點:
如果設(shè)為true够掠,則form屬性將不能被編輯民褂,文本框不能輸入文字。
區(qū)別:
1疯潭、樣式不同赊堪。
readonly只是使文本框不能輸入,外觀沒有變化袁勺。
disabled會使文本框變灰雹食。
2、有效范圍不同期丰。
readonly只針對input(text / password)和textarea之類可以輸入文本的輸入項有效群叶。
disabled對于所有的表單元素都有效。
3钝荡、是否能獲取鼠標(biāo)焦點街立。
readonly設(shè)為true,用戶不能編輯埠通,但鼠標(biāo)仍然可以聚焦赎离。
disabled設(shè)為true,輸入項不能獲取焦點端辱,用戶的所有操作(鼠標(biāo)點擊梁剔、鍵盤輸入等)對該輸入項都無效虽画。
4、是否回傳數(shù)據(jù)荣病。
表單元素使用了readonly后码撰,會將該值傳遞出去,即通過request.getParameter("name")可以得到文本框內(nèi)的內(nèi)容个盆。
表單元素使用了disabled后脖岛,當(dāng)我們將表單以POST或GET的方式提交的話,這個元素的值不會被傳遞出去颊亮,即通過request.getParameter("name")得不到文本框中的內(nèi)容(如果有的話)柴梆。
比較常見的情況如下所述。
情況一:
在某個表單中為用戶預(yù)填了某個唯一識別代碼终惑,不允許用戶改動绍在,但是在提交表單時作為form提交這項值——此時應(yīng)該將它的屬性設(shè)置為readonly 。
情況二:
當(dāng)用戶正式提交了表單后需要等待管理員的信息驗證雹有,這就不允許用戶再更改表單中的數(shù)據(jù)揣苏,而是只能夠查看——由于disabled的作用元素范圍大,所以此時應(yīng)該使用disabled件舵。同時,應(yīng)該注意的是要將submit button也disabled掉脯厨,否則只要用戶按了這個按鈕铅祸,如果在數(shù)據(jù)庫操作頁面中沒有做完整性檢測的話,數(shù)據(jù)庫中的值就會被清除合武。
如果說在這種情況下用readonly來代替disabled临梗,若表單中只有input(text / password)和textarea元素,那還是可以的稼跳;
如果存在其他元素盟庞,比如select,readonly屬性對它們無效汤善,用戶可以在重新改寫值后按回車鍵進(jìn)行提交(回車是默認(rèn)的submit觸發(fā)按鍵)什猖。
所以,我們常常在用戶按了提交按鈕后红淡,利用javascript將提交按鈕disabled掉不狮,這樣可以防止網(wǎng)絡(luò)條件比較差的環(huán)境下,用戶反復(fù)點提交按鈕導(dǎo)致數(shù)據(jù)冗余地存入數(shù)據(jù)庫在旱。
編輯:栗子六壹
參考:https://blog.csdn.net/zxf1242652895/article/details/78517931?utm_source=copy