">文档:<amp-inputmask> - amp.dev - AMP 框架
AMP

amp-inputmask

描述

为 AMP 表单中的输入提供输入掩码功能

 

必需脚本

<script async custom-element="amp-inputmask" src="https://cdn.ampproject.org/v0/amp-inputmask-0.1.js"></script>

示例

用法

amp-inputmask 启用 input 元素上的 maskmask-output 属性。这些属性允许文档作者为其表单元素指定输入掩码。

输入掩码会自动向用户输入添加格式化字符,并阻止用户输入与掩码不匹配的输入。例如,电话字段上的输入掩码会自动添加特殊字符,如 ()-,用户只能输入所需的数字,而掩码会阻止他们输入不正确的字符。

支持的元素

  • input[type=text]
  • input[type=tel]
  • input[type=search]

属性

mask(必需)

指定要应用于输入元素的掩码或掩码。

自定义掩码由以下字符组成,并且可以列出空格分隔

mask
character
描述
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 用户必须输入付款卡号。掩码会自动添加空格来分块数字,并且支持美国运通风格和 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" 输入,其掩码输入的 nameid 属性附加 -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