inputmode
屬性是HTML5新增的,它允許開發者提示瀏覽器應該啟用哪種虛擬鍵盤佈局,從而提升使用者在移動裝置上的輸入體驗。不同的 inputmode
值對應不同的鍵盤佈局,例如數字鍵盤、電話鍵盤、電子郵件鍵盤等。
以下是 inputmode
屬性的一些應用場景:
-
數字輸入: 當輸入框預期使用者輸入數字時,可以使用
inputmode="numeric"
或inputmode="decimal"
。這將顯示數字鍵盤,方便使用者快速輸入數字。例如,用於輸入電話號碼、郵政編碼、信用卡號等。 -
電話號碼輸入: 使用
inputmode="tel"
將顯示電話撥號鍵盤,包含*、#等特殊字元。 -
URL輸入: 使用
inputmode="url"
將顯示包含斜槓(/)、點(.)等符號的鍵盤,方便使用者輸入網址。 -
Email地址輸入: 使用
inputmode="email"
將顯示包含@符號的鍵盤,方便使用者輸入電子郵件地址。 -
搜尋輸入: 使用
inputmode="search"
會顯示一個帶有搜尋圖示的鍵盤,部分瀏覽器還會顯示一個清除按鈕。 -
文字輸入: 雖然
inputmode="text"
是預設值,但明確指定它可以確保在某些瀏覽器中顯示標準文字鍵盤。 例如,在一些情況下,瀏覽器可能會根據輸入框的type
屬性(例如type="number"
)自動切換到數字鍵盤,即使你希望使用者輸入文字。 使用inputmode="text"
可以避免這種情況。 -
多語言支援:
inputmode
屬性可以與lang
屬性一起使用,以更好地支援多語言輸入。例如,如果lang
屬性設定為 "ja"(日語),瀏覽器可能會顯示一個包含日文字元的鍵盤。 -
改進使用者體驗: 總而言之,
inputmode
屬性的主要目的是改進移動裝置上的使用者體驗。透過顯示適當的虛擬鍵盤,可以減少使用者的輸入錯誤,並加快輸入速度。
一些需要注意的點:
- 瀏覽器相容性: 雖然
inputmode
屬性是HTML5標準的一部分,但並非所有瀏覽器都完全支援所有值。開發者應該測試目標瀏覽器,並根據需要提供後備方案。 - 並非強制性:
inputmode
只是一個提示,瀏覽器可以選擇忽略它。 不要完全依賴它來驗證使用者輸入,仍然需要使用伺服器端驗證來確保資料的有效性。 - 與type屬性的關係:
inputmode
和type
屬性的作用不同。type
屬性定義了輸入欄位的型別(例如text
,number
,email
等),而inputmode
屬性提示瀏覽器應該顯示哪種虛擬鍵盤。 它們可以一起使用以提供最佳的使用者體驗。
總而言之,inputmode
屬性是一個很有用的工具,可以提升移動Web應用的使用者體驗。 透過合理地使用它,可以使表單填寫更加便捷高效。