有没有办法强制数字键盘出现在电话<input type="text">?我刚刚意识到,<input type="number">在HTML5中是“浮点数”,所以它不适合信用卡号,邮政编码等。

我想模拟<input type="number">的数字键盘功能,用于接受浮点数以外的数值的输入。是否有其他合适的输入类型可以做到这一点?


当前回答

您可以执行<input type="text" pattern="\d*">。这将导致出现数字键盘。

请参阅这里了解更多详细信息:iOS的文本,Web和编辑编程指南

< >形式 <input type="text" pattern="\d*"> <按钮类型=“提交”> > < /按钮提交 > < /形式

其他回答

我发现,至少对于类似“密码”的字段,执行类似<input type="tel" />这样的操作最终会生成最真实的面向数字的字段,而且它也没有自动格式化的好处。例如,在我最近为希尔顿酒店开发的一个移动应用程序中,我最后使用了这个:

... 我的客户对此印象深刻。

< >形式 <input type="tel" /> <按钮类型=“提交”> > < /按钮提交 > < /形式

 <input type="text" inputmode="decimal">

它将给你文本输入使用数字键盘

使用<input type="text" pattern="\d*">打开数字键盘是有危险的。在firefox和chrome上,模式中包含的正则表达式会导致浏览器验证该表达式的输入。如果它与模式不匹配或为空,则会发生错误。注意其他浏览器中的意外操作。

2018年:

<input type="number" pattern="\d*">

Android和iOS都适用。

我在Android(^4.2)和iOS(11.3)上进行了测试

对我来说,最好的解决方案是:

对于整数,在android和iphone上显示0-9键

<label for="ting">
<input id="ting" name="ting" type="number" pattern="[\d]*" />

你也可以这样做,以隐藏旋转器在firefox/chrome/safari,大多数客户认为他们看起来很丑

 input[type=number]::-webkit-inner-spin-button,
 input[type=number]::-webkit-outer-spin-button {
      -webkit-appearance: none;
      margin: 0;
 }

 input[type=number] {
      -moz-appearance:textfield;
 }

并添加novalidate='novalidate'到你的表单元素,如果你做自定义验证

Ps只是以防你真的想要浮点数,步进到你想要的任何精度,都会加上'。’

<label for="ting">
<input id="ting" name="ting" type="number" pattern="[\d\.]*" step="0.01" />