Readonly和Disabled之間的微小區(qū)別詳解
發(fā)布時(shí)間:2014-05-09 10:48:06 作者:佚名
我要評(píng)論

Readonly和Disabled都能夠做到使用戶不能夠更改表單域中的內(nèi)容,但是它們之間還是有一定的區(qū)別的,下面為大家詳細(xì)介紹下
Readonly和Disabled它們都能夠做到使用戶不能夠更改表單域中的內(nèi)容。但是它們之間有著微小的差別,總結(jié)如下:
Readonly只針對(duì)input(text / password)和textarea有效,而disabled對(duì)于所有的表單元素都有效,但是表單元素在使用了disabled后,當(dāng)我們將表單以POST或GET的方式提交的話,這個(gè)元素的值不會(huì)被傳遞出去,而readonly會(huì)將該值傳遞出去(readonly接受值更改可以回傳,disable接受改但不回傳數(shù)據(jù))。
一般比較常用的情況是:
在某個(gè)表單中為用戶預(yù)填了某個(gè)唯一識(shí)別代碼,不允許用戶改動(dòng),但是在提交時(shí)需要傳遞該值,此時(shí)應(yīng)該將它的屬性設(shè)置為readonly 。
經(jīng)常遇到當(dāng)用戶正式提交了表單后需要等待管理員的信息驗(yàn)證,這就不允許用戶再更改表單中的數(shù)據(jù),而是只能夠查看,由于disabled的作用元素范圍大,所以此時(shí)應(yīng)該使用disabled,但同時(shí)應(yīng)該注意的是要將submit button也disabled掉,否則只要用戶按了這個(gè)按鈕,如果在數(shù)據(jù)庫操作頁面中沒有做完整性檢測(cè)的話,數(shù)據(jù)庫中的值就會(huì)被清除。如果說在這種情況下用readonly來代替disabled的話,若表單中只有input(text / password)和textarea元素,那還是可以的,如果存在其他發(fā)元素,比如select,用戶可以在重新改寫值后按回車鍵進(jìn)行提交(回車是默認(rèn)的submit觸發(fā)按鍵)
我們常常在用戶按了提交按鈕后,利用javascript將提交按鈕disabled掉,這樣可以防止網(wǎng)絡(luò)條件比較差的環(huán)境下,用戶反復(fù)點(diǎn)提交按鈕導(dǎo)致數(shù)據(jù)冗余地存入數(shù)據(jù)庫。
disabled和readonly這兩個(gè)屬性有一些共同之處,比如都設(shè)為true,則form屬性將不能被編輯,往往在寫js代碼的時(shí)候容易混合使用這兩個(gè)屬性,其實(shí)他們之間是有一定區(qū)別的:
如果一個(gè)輸入項(xiàng)的disabled設(shè)為true,則該表單輸入項(xiàng)不能獲取焦點(diǎn),用戶的所有操作(鼠標(biāo)點(diǎn)擊和鍵盤輸入等)對(duì)該輸入項(xiàng)都無效,最重要的一點(diǎn)是當(dāng)提交表單時(shí),這個(gè)表單輸入項(xiàng)將不會(huì)被提交。
而readonly只是針對(duì)文本輸入框這類可以輸入文本的輸入項(xiàng),如果設(shè)為true,用戶只是不能編輯對(duì)應(yīng)的文本,但是仍然可以聚焦焦點(diǎn),并且在提交表單的時(shí)候,該輸入項(xiàng)會(huì)作為form的一項(xiàng)提交。
Readonly只針對(duì)input(text / password)和textarea有效,而disabled對(duì)于所有的表單元素都有效,但是表單元素在使用了disabled后,當(dāng)我們將表單以POST或GET的方式提交的話,這個(gè)元素的值不會(huì)被傳遞出去,而readonly會(huì)將該值傳遞出去(readonly接受值更改可以回傳,disable接受改但不回傳數(shù)據(jù))。
一般比較常用的情況是:
在某個(gè)表單中為用戶預(yù)填了某個(gè)唯一識(shí)別代碼,不允許用戶改動(dòng),但是在提交時(shí)需要傳遞該值,此時(shí)應(yīng)該將它的屬性設(shè)置為readonly 。
經(jīng)常遇到當(dāng)用戶正式提交了表單后需要等待管理員的信息驗(yàn)證,這就不允許用戶再更改表單中的數(shù)據(jù),而是只能夠查看,由于disabled的作用元素范圍大,所以此時(shí)應(yīng)該使用disabled,但同時(shí)應(yīng)該注意的是要將submit button也disabled掉,否則只要用戶按了這個(gè)按鈕,如果在數(shù)據(jù)庫操作頁面中沒有做完整性檢測(cè)的話,數(shù)據(jù)庫中的值就會(huì)被清除。如果說在這種情況下用readonly來代替disabled的話,若表單中只有input(text / password)和textarea元素,那還是可以的,如果存在其他發(fā)元素,比如select,用戶可以在重新改寫值后按回車鍵進(jìn)行提交(回車是默認(rèn)的submit觸發(fā)按鍵)
我們常常在用戶按了提交按鈕后,利用javascript將提交按鈕disabled掉,這樣可以防止網(wǎng)絡(luò)條件比較差的環(huán)境下,用戶反復(fù)點(diǎn)提交按鈕導(dǎo)致數(shù)據(jù)冗余地存入數(shù)據(jù)庫。
disabled和readonly這兩個(gè)屬性有一些共同之處,比如都設(shè)為true,則form屬性將不能被編輯,往往在寫js代碼的時(shí)候容易混合使用這兩個(gè)屬性,其實(shí)他們之間是有一定區(qū)別的:
如果一個(gè)輸入項(xiàng)的disabled設(shè)為true,則該表單輸入項(xiàng)不能獲取焦點(diǎn),用戶的所有操作(鼠標(biāo)點(diǎn)擊和鍵盤輸入等)對(duì)該輸入項(xiàng)都無效,最重要的一點(diǎn)是當(dāng)提交表單時(shí),這個(gè)表單輸入項(xiàng)將不會(huì)被提交。
而readonly只是針對(duì)文本輸入框這類可以輸入文本的輸入項(xiàng),如果設(shè)為true,用戶只是不能編輯對(duì)應(yīng)的文本,但是仍然可以聚焦焦點(diǎn),并且在提交表單的時(shí)候,該輸入項(xiàng)會(huì)作為form的一項(xiàng)提交。
相關(guān)文章
- readonly是要鎖定這個(gè)控件,disabled 和readonly有相同的地方也是可以鎖定這個(gè)控件用戶不能改變他的值,但是disabled的更徹底一些2014-09-25
HTML中禁用表單控件的兩種方法readonly與disabled
有時(shí)候我們會(huì)希望表單上的控件是不可修改的,比如在修改密碼的網(wǎng)頁中,顯示用戶名的文本框就應(yīng)該是不可修改狀態(tài)的,下面與大家分享下禁用表中控件的兩種方法2014-08-24設(shè)置disabled屬性后臺(tái)讀不到數(shù)據(jù)如何讓select支持readonly
設(shè)置了disabled屬性后,后臺(tái)讀取不到數(shù)據(jù),讓select支持readonly屬性,可以設(shè)置disabled屬性,并把表單值存入hidden隱藏域中,也可以使用jquery控制。示例如下,需要的朋友2014-06-17textarea的disabled與readonly屬性具體用法介紹
disabled屬性表示一個(gè)被禁用的文本區(qū),readonly 屬性規(guī)定文本區(qū)為只讀,下面以示例的方式為大家介紹下兩者具體的用法與區(qū)別2014-06-12通過disabled和readonly將input設(shè)置為只讀效果
這篇文章主要介紹了通過disabled和readonly將input設(shè)置為只讀效果,這兩種實(shí)現(xiàn)的效果都是只能讀取不能編輯,具體示例如下,大家可以學(xué)習(xí)學(xué)習(xí)2014-04-24html表單屬性readonly和disabled的使用方法
html容易被忽略的一些表單屬性,如readonly、disabled,兩者在獲得value值方面有所不同,感興趣的朋友可以了解下本文2014-02-12表單元素屬性readonly和disabled使用對(duì)比
表單元素屬性readonly和disabled在適應(yīng)范圍、操作、表單提交等等方面都有所不同,至于有哪些不同,感興趣的朋友可以了解下本文2013-09-23- Readonly和Disabled是用在表單中的兩個(gè)屬性,它們都能夠做到使用戶不能夠更改表單域中的內(nèi)容。但是它們之間有著微小的差別,我在實(shí)踐中得到了一些規(guī)律2009-07-26
淺談html中input只讀屬性readonly和disable的區(qū)別
下面小編就為大家?guī)硪黄獪\談html中input只讀屬性readonly和disable的區(qū)別。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-06-14