重要事項:本文件不適用於您目前選取的格式 ads!
amp-inputmask
說明
為 AMP 表單中的輸入內容提供輸入遮罩功能
必要指令碼
<script async custom-element="amp-inputmask" src="https://cdn.ampproject.org/v0/amp-inputmask-0.1.js"></script>
用法
amp-inputmask
啟用 input
元素上的 mask
和 mask-output
屬性。這些屬性可讓文件作者為其表單元素指定輸入遮罩。
輸入遮罩會自動將格式化字元新增至使用者輸入,並防止使用者輸入與遮罩不符的內容。例如,電話欄位上的輸入遮罩會自動新增 (
、)
和 -
等特殊字元,而使用者只能輸入所需的數字,遮罩會防止他們輸入不正確的字元。
支援的元素
input[type=text]
input[type=tel]
input[type=search]
屬性
mask
(必要)
指定要套用至輸入元素的遮罩或多個遮罩。
自訂遮罩由下列字元組成,且可以空格分隔列出
mask 字元 | 說明 |
---|---|
L | 使用者必須新增字母字元 |
0 | 使用者必須新增數字字元 |
A | 使用者必須新增字母數字字元 |
C | 使用者必須新增任意字元 |
l | 使用者可以選擇性地新增字母字元 |
a | 使用者可以選擇性地新增字母數字字元 |
c | 使用者可以選擇性地新增任意字元 |
9 | 使用者可以選擇性地新增數字字元。 |
\ | 反斜線 \ 會逸出遮罩中的下一個字元,使其成為字元常值。 |
_ | 遮罩會自動插入空格字元 |
例如,此遮罩輸入將允許使用者輸入加拿大郵遞區號。系統會自動為使用者新增空格。
<input mask="L0L_0L0" placeholder="A1A 1A1" type="text" />
此遮罩允許使用者輸入 5 位數或 9 位數的美國郵遞區號。當使用者輸入第六位數字時,系統會自動新增連字號。
<input mask="00000 00000-0000" placeholder="10001" type="tel" />
此遮罩接受北美電話號碼。當使用者輸入時,系統會自動新增字元「+」、「1」、「 」、「(」、「)」和「-」。
<input type="tel" mask="+1_(000)_000-0000" placeholder="+1 (555) 555-5555" />
支援下列具名遮罩
payment-card
使用者必須輸入付款卡號碼。遮罩會自動新增空格來區隔數字,並支援 American Express 風格和 Visa 風格的區隔。
例如,此遮罩輸入將允許使用者輸入付款卡號碼。系統會自動在使用者輸入時新增空格字元「 」。
<input type="tel" mask="payment-card" placeholder="0000 0000 0000 0000" />
mask-trim-zeros
指定遮罩將從貼到自訂遮罩中的值移除多少個零。為了向後相容,預設值為 2
。指定 0
以停用此行為。
當使用者從試算表貼上值時,左側通常會有零填充。例如,北美電話號碼有時會儲存為 015551112222,其中 1 是國碼,但已進行零填充。mask-trim-zeros
屬性最多會移除指定數量的零。mask-trim-zeros
屬性不會影響具名字罩
mask-output
指定表單將如何提交輸入值。
- raw (預設值):依原樣輸出值,包含所有特殊字元。
- alphanumeric:僅輸出遮罩中的字母數字字元。表單會新增
type="hidden"
輸入,並將遮罩輸入的name
或id
屬性附加-unmasked
。
在以下範例中,mask-output
輸出屬性設為 raw
。
<input mask="+\1_(000)_000-0000" mask-output="raw" name="phone" type="tel" placeholder="+1 (555) 555-5555" />
如果缺少 mask-output
屬性,則預設值為 raw
<!-- missing `mask-output`, which is equivalent to `mask-output="raw"` --> <input mask="+\1_(000)_000-0000" name="phone" type="tel" placeholder="+1 (555) 555-5555" />
當 mask-output
設為 raw
時,表單會依原樣提交 input
值。例如,如果輸入內容包含 +1 (800) 123-4567
,表單將提交以下值
{"phone": "+1 (800) 123-4567"}
在此,mask-output
輸出屬性設為 alphanumeric
。
<input mask="+\1_(000)_000-0000" mask-output="alphanumeric" name="phone" type="tel" placeholder="+1 (555) 555-5555" />
當 mask-output
設為 alphanumeric
時,表單會依原樣提交 input
值,且表單會新增隱藏輸入。隱藏輸入將包含原始輸入中的字母數字字元。其 name
將是原始輸入的名稱,並附加 -unmasked
。例如,如果輸入內容包含 +1 (800) 123-4567
,表單將提交以下值
{ "phone": "+1 (800) 123-4567", "phone-unmasked": "18001234567" }
驗證
請參閱 AMP 驗證器規格中的 amp-inputmask 規則。
您已閱讀本文件十幾次,但它似乎並未涵蓋您的所有問題?也許其他人也有同感:在 Stack Overflow 上與他們聯繫。
前往 Stack Overflow 發現錯誤或缺少功能?AMP 專案強烈鼓勵您的參與和貢獻!我們希望您能成為我們開放原始碼社群的長期參與者,但我們也歡迎針對您特別感興趣的問題提供一次性貢獻。
前往 GitHub