1. 程式人生 > >在iOS下-input[disabled] 顏色變淺相容&& input[readonly]仍可獲取焦點解決方法

在iOS下-input[disabled] 顏色變淺相容&& input[readonly]仍可獲取焦點解決方法

目標:在寫input輸入框時,想讓其只讀不寫。

環境:在iPhone上

本來用的時readonly,可是readonly,居然可以獲取焦點,不能彈出鍵盤;安卓手機完全木有問題,所以去用了disabled,結果顏色又有問題,所以要多寫幾個屬性,相容一下。

解決方式:

1.用disabled相容;

<input type="text"  disabled/>

input[disabled],input:disabled,input.disabled {
  color: #444!important;
  -webkit-text-fill-color: #444;
  -webkit-opacity: 1;
  opacity: 1;
}

注:使用disabled,會使input的其他事件也失效,注意一下

2.設定readonly屬性;

<input type="text"  readonly unselectable="on" onfocus="this.blur()"/>

// 1.unselectable屬性作用 
  在IE瀏覽器中,當input獲得焦點時,點選有unselectable=”on”屬性的標籤時,不會觸發onblur事件。 

// 2.onfocus=”this.blur()”方法作用 
  獲取焦點時呼叫失去焦點事件

Readonly和Disabled它們都能夠做到使使用者不能夠更改表單域中的內容。但是它們之間有著微小的差別,總結如下:

     Readonly只針對input(text / password)和textarea有效,而disabled對於所有的表單元素都有效,但是表單元素在使用了disabled後,當我們將表單以POST或GET的方式提交的話,這個元素的值不會被傳遞出去,而readonly會將該值傳遞出去(readonly接受值更改可以回傳,disable接受改但不回傳資料)。

一般比較常用的情況是:

  1. 在某個表單中為使用者預填了某個唯一識別程式碼,不允許使用者改動,但是在提交時需要傳遞該值,此時應該將它的屬性設定為readonly 。
  2. 經常遇到當用戶正式提交了表單後需要等待管理員的資訊驗證,這就不允許使用者再更改表單中的資料,而是隻能夠檢視,由於disabled的作用元素範圍大,所以此時應該使用disabled,但同時應該注意的是要將submit button也disabled掉,否則只要使用者按了這個按鈕,如果在資料庫操作頁面中沒有做完整性檢測的話,資料庫中的值就會被清除。如果說在這種情況下用readonly來代替disabled的話,若表單中只有input(text / password)和textarea元素,那還是可以的,如果存在其他發元素,比如select,使用者可以在重新改寫值後按回車鍵進行提交(回車是預設的submit觸發按鍵)
  3. 我們常常在使用者按了提交按鈕後,利用javascript將提交按鈕disabled掉,這樣可以防止網路條件比較差的環境下,使用者反覆點提交按鈕導致資料冗餘地存入資料庫。

disabled和readonly這兩個屬性有一些共同之處,比如都設為true,則form屬性將不能被編輯,往往在寫js程式碼的時候容易混合使用這兩個屬性,其實他們之間是有一定區別的:

  • 如果一個輸入項的disabled設為true,則該表單輸入項不能獲取焦點,使用者的所有操作(滑鼠點選和鍵盤輸入等)對該輸入項都無效,最重要的一點是當提交表單時,這個表單輸入項將不會被提交
  • readonly只是針對文字輸入框這類可以輸入文字的輸入項,如果設為true,使用者只是不能編輯對應的文字,但是仍然可以聚焦焦點,並且在提交表單的時候,該輸入項會作為form的一項提交。

相關推薦

iOS-input[disabled] 顏色相容&& input[readonly]獲取焦點解決方法

目標:在寫input輸入框時,想讓其只讀不寫。 環境:在iPhone上 本來用的時readonly,可是readonly,居然可以獲取焦點,不能彈出鍵盤;安卓手機完全木有問題,所以去用了disabled,結果顏色又有問題,所以要多寫幾個屬性,相容一下。 解決方式: 1

disablediOS顏色問題的相容

原文:https://blog.csdn.net/qq_24985715/article/details/78206450 input:disabled, input[disabled]{ color: red; -webkit-text-fill-color:red;

iosiframe中fixed定位失效 完美替代方案 並在iframe裡做上拉載入這種操作

最近忙的 好久沒寫部落格了   正好昨天處理了一個問題  記錄下來 分享給大家   1 專案需求     要求 vue單頁專案引入外部網頁,頭部由自己寫,然後做互動 完成功能    翻譯一下就是:&nbs

[JS]IE相容模式會把後臺傳來的html或者xml標籤變成大寫的解決方法

在IE相容模式下, 後臺傳到頁面上的html程式碼或者xml程式碼, 標籤裡會變成大寫, 不符合W3C規範。 如點我吧 被變成 可以使用下面的方法來轉換為小寫 // 呼叫 htmlTxt = convert(htmlTxt ); // 這個方法可以把

Linux使用Vi時方向鍵亂碼、刪除鍵不能使用的解決方法(親測有效)

在Linux下編輯一些檔案,這就涉及到了Vi這個編輯器。在Linux下,初始使用Vi的時候有兩個典型的問題: 1、在編輯模式下使用方向鍵的時候,並不會使游標移動,而是在命令列中出現A、B、C、D四個字母; 2、當編輯出現錯誤,想要刪除時,發現Backspace鍵不起作用,只

VMwarecentOS yum報錯cannot find a valid baseurl or repo:base 解決方法

tps ges cannot art style https pin sysconf epo *無法聯網的明顯表現會有:  1、yum install出現 Error: cannot find a valid baseurl or repo:base  2、ping hos

windows使用pip安裝模塊發生“failed with error code 1”的解決方法

pil blank local 出現 自己 comm exec app ted win不愧是最爛的開發平臺,在安裝第三方模塊時經常出現些幺蛾子。 今天在window中使用python3自帶的pip安裝scrapy時,出錯,錯誤代碼如下: Command "f:\python

input輸入框中的光標大小顯示不一致的解決方法

12px 字體 height size 文字 padding 輸入框 我們 解決方法 chrome瀏覽器對光標高度的設置原則為,當沒有內容的時候光標的高度=input的line-height的值,當有內容時,光標從input的頂端到文字的底部 input輸入框中的光標大小顯

關於在地址池綁定IP時報錯The IP address‘s status is error解決方法

key src gb2 c99 blob 電腦 oss ont ror 我使用華為交換機為一家企業裏電腦綁定IP地址時報:The IP address's status is error的錯誤。如下圖: 這時我覺得可能這個IP地址已經被DHCP服務給分配到

在vue專案中引用element-ui時 讓el-input 獲取焦點方法

在製作專案的時候遇到一個需求,點選一個按鈕彈出一個input輸入框,並讓輸入框獲得焦點,專案中引用了element-ui 在網上查找了很多方法,但是在實際使用中發現了一個問題無論是使用$ref獲取input元素然後使用focus方法還是使用餓了麼元件自帶的autoFocus都只有在第一次點選按鈕的時候可以讓

Ubuntu,使用POI將PPT轉為圖片時,出現亂碼的解決方法

問題背景:生產環境為Ubuntu 16.04.4,程式中有一個模組,需要通過POI,將PPT轉換為圖片格式。除錯時,發現轉換後的圖片中,中文無法正確顯示,全都是“口口口”這種。 問題原因:Ubuntu中缺少必要的字型 解決辦法:向Ubuntu中匯入所需的字型 具體操作:可以參考Ubunt

CentOS7VMware虛擬機器克隆,網絡卡無法啟動問題的解決方法

1、執行systemctl restart network,啟動失敗,報如下錯誤 2、通過執行 systemctl status network,檢視網絡卡狀態。 3、出現以上問題需要修改HWADDR和UUID 檢視HWADDR可以通過只檢視虛擬機器網絡卡屬性 或執行

在windowspython指令碼訪問Oracle資料庫環境變數配置常見報錯與解決方法集合

4. ImportError: No module named luhn:下載地址 https://pypi.org/project/luhn/#files,下載後的包直接解壓到 ~:\Python27\Lib\site-packages下。或者直接cmd命令列直

關於iOS分享引用"libSocialQQ.a(UMSocialQQHandler.o)"報i386錯誤原因及解決方法

應用中整合QQ分享,匯入libSocialQQ.a庫,真機執行沒有問題,但是不少同學在模擬器上執行時,往往會報"libSocialQQ.a(UMSocialQQHandler.o)"i386錯誤;相信原因大家都通過網上查閱資料得知,這是因為最新版本的QQ SDK不再支援I386框架,但是真機執行沒有

ubuntu 16.04系統GTX970顯示卡不支援導致無法開機或開機黑屏解決方法

1.問題簡介 最近換了個電腦,在重灌ubuntu16.04時遇到了問題。本來是個帶有win10的雙系統,錯誤的把win10解除安裝後還是有著無法進入的問題。主要表現為可以進入選擇系統的介面,但是在選擇系統後,即刻進入黑屏無法進入ubuntu系統。 這個問題是

Linux_ubuntu環境Qt無法編譯程式碼顯示-1: error: cannot find -lGL錯誤的解決方法

今天在機房ubuntu14.04環境下安裝了Qt5.8.0 但在構建專案就會出現:-1: error: cannot find -lGL 錯誤 經過查詢資料,發現有兩種可能。一種是之前程式執行產生的

laravel框架學習(三)winphp artisan tinker 測試資料時,無法執行報錯的解決方法

問題描述: 複製該路徑,在資源管理器的位址列中開啟,會看到 如下: Temp 往往是系統或者其他軟體生成的快取檔案或目錄 需要返回到上一級目錄Temp中,全選資料夾,刪除,提示不允許刪除的話,

如何解決此Flash Player與您的地區不相容,請重新安裝Flash的解決方法

flash被國內2144代理以後,如果不從代理那裝,最近更新會一直提示‘此Flash Player 與您的地區不相容,請重新安裝Flash’。 然後今天把解決方案總結一下。 環境: 電腦系統:windows10 64位 瀏覽器:Chrome (如果是32位

Linux環境gcc靜態編譯/usr/bin/ld: cannot find -lc錯誤原因及解決方法 原因:

原因: 一般出現這個問題的時候,Makefile中肯定有-static選項。這其實是靜態連結時沒有找到libc.a。 解決方案: 需要安裝glibc-static.xxx.rpm,如glibc-static-2.12-1.107.el6_4.2.i686.rpm,或是yum install gli

Ubuntu14.04安裝Anaconda3-4.3.0後,無法建立虛擬環境的解決方法

    因為研究需要,涉及到了強化學習(Reinforcement Learning, RL)內容,繼而進入了一個充滿荊棘的的領域。    強化學習方面的書籍寥寥無幾,98年,Richard S. Sutton出版了他的強化學習導論第一版,即Reinforcement Lea