Mic*_*sen 18 html google-chrome
TLDR:哪种输入类型可以使用移动数字键盘并实现屏蔽注入空间和CVV和信用卡输入的最大限制,例如:XXXX XXXX XXXX XXXX
在构建表单时,我已经看到围绕正确的信用卡输入类型的不同程度的一致性.以下是我发现的每个方面的优缺点:
类型=文本
类型=数
类型=电话
这些都是我想到的所有类型.如果有人有任何其他建议,请告诉我!
jab*_*tta 16
如果您尝试严格使用 HTML 执行此操作,我相信以下内容将使您尽可能接近:
<label for="ccn">Credit Card Number:</label>
<input id="ccn" type="tel" inputmode="numeric" pattern="[0-9\s]{13,19}" autocomplete="cc-number" maxlength="19" placeholder="xxxx xxxx xxxx xxxx">
Run Code Online (Sandbox Code Playgroud)
inputmode 设置键盘类型(在本例中为数字)pattern 启用验证(在这种情况下,长度在 13 到 19 之间的数字和空格)并且它有助于不支持的浏览器的键盘类型 inputmodeautocomplete 告诉浏览器什么应该自动完成(在这种情况下,信用卡号)maxLength 防止用户输入超过设置的字符数(在本例中为 19,包括数字和空格)placeholder 给用户一个例子(格式提示)对于更健壮的解决方案,将需要 JavaScript。与其推出自己的解决方案,不如使用经过实战检验的库。Cleave.js(正如你提到的)是一个流行的选择。
type="tel"由于你提到的原因,我\xe2\x80\x99在很多地方都看到过使用。
我不建议type="number"您这样做,因为您必须摆弄 in/decrement 箭头等。从某些角度来看,就我们通常对数字所做的事情而言,它不是 \xe2\x80\x9cnumber\xe2\x80\x9d (数学) ),请参阅CSS 技巧论坛上的评论。
如何强制数字键盘的另一个技巧是使用pattern="[0-9]*". 这应该仅适用于 iOS。要使其也能在 Android 上运行,您必须将其与type="tel".
有一个inputmode为此设计的属性,它尚未实现(实际上在 HTML 5.2 中已弃用),但已经对其进行了工作(FF/Chrome)。
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input
并查看此讨论: https://github.com/whatwg/html/issues/3290
现在将自动完成属性设置为正确的值: https://developers.google.com/web/updates/2015/06/checkout-faster-with-autofill
或像您现在使用的那样使用掩码实现自定义输入。
| 归档时间: |
|
| 查看次数: |
13386 次 |
| 最近记录: |