最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

處理表單使input等文本框?yàn)橹蛔x不可編輯的方法

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 15:34:35
文檔

處理表單使input等文本框?yàn)橹蛔x不可編輯的方法

處理表單使input等文本框?yàn)橹蛔x不可編輯的方法:方法1: onfocus=this.blur() <input type="text" name="input1" value="中國" onfocus=this.blur()>方法2:readonly <input type="text" name=&qu
推薦度:
導(dǎo)讀處理表單使input等文本框?yàn)橹蛔x不可編輯的方法:方法1: onfocus=this.blur() <input type="text" name="input1" value="中國" onfocus=this.blur()>方法2:readonly <input type="text" name=&qu

方法1: onfocus=this.blur()

<input type="text" name="input1" value="中國" onfocus=this.blur()>

方法2:readonly

<input type="text" name="input1" value="中國" readonly> 
<input type="text" name="input1" value="中國" readonly="true">

方法3: disabled

<input type="text" name="input1" value="中國" disabled>

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)提交。

一些性能問題:
display: none和visibility:hidden的區(qū)別就是visibility:hidden會(huì)保留元素的空間
repaint(重繪) ,repaint發(fā)生更改時(shí),元素的外觀被改變,且在沒有改變布局的情況下發(fā)生,如改變outline,visibility,background color,不會(huì)影響到dom結(jié)構(gòu)渲染。
reflow(渲染),與repaint區(qū)別就是他會(huì)影響到dom的結(jié)構(gòu)渲染,同時(shí)他會(huì)觸發(fā)repaint,他會(huì)改變他本身與所有父輩元素(祖先),這種開銷是非常昂貴的,導(dǎo)致性能下降是必然的,頁面元素越多效果越明顯。
所以display:none才會(huì)產(chǎn)生reflow
visibility:hidden只會(huì)觸發(fā)repaint

相關(guān)文章:

js設(shè)置input文本框只讀

通過js設(shè)置所有form對(duì)象為只讀

使用js動(dòng)態(tài)控制input框的只讀屬性

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

處理表單使input等文本框?yàn)橹蛔x不可編輯的方法

處理表單使input等文本框?yàn)橹蛔x不可編輯的方法:方法1: onfocus=this.blur() <input type="text" name="input1" value="中國" onfocus=this.blur()>方法2:readonly <input type="text" name=&qu
推薦度:
標(biāo)簽: 文本框 不能修改 表單
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top