有没有办法强制数字键盘出现在电话<input type="text">?我刚刚意识到,<input type="number">在HTML5中是“浮点数”,所以它不适合信用卡号,邮政编码等。
我想模拟<input type="number">的数字键盘功能,用于接受浮点数以外的数值的输入。是否有其他合适的输入类型可以做到这一点?
有没有办法强制数字键盘出现在电话<input type="text">?我刚刚意识到,<input type="number">在HTML5中是“浮点数”,所以它不适合信用卡号,邮政编码等。
我想模拟<input type="number">的数字键盘功能,用于接受浮点数以外的数值的输入。是否有其他合适的输入类型可以做到这一点?
当前回答
我认为type="number"对于语义网页来说是最好的。如果你只是想改变键盘,你可以使用type="number"或type="tel"。在这两种情况下,iPhone都不限制用户输入。用户仍然可以输入(或粘贴)任何他/她想要的字符。唯一的变化是显示给用户的键盘。如果您希望在此之外有任何限制,则需要使用JavaScript。
其他回答
您可以执行<input type="text" pattern="\d*">。这将导致出现数字键盘。
请参阅这里了解更多详细信息:iOS的文本,Web和编辑编程指南
< >形式 <input type="text" pattern="\d*"> <按钮类型=“提交”> > < /按钮提交 > < /形式
试试这个:
$(document).ready(function() {
$(document).find('input[type=number]').attr('type', 'tel');
});
参见:https://answers.laserfiche.com/questions/88002/Use-number-field-input-type-with-Field-Mask
使用<input type="text" pattern="\d*">打开数字键盘是有危险的。在firefox和chrome上,模式中包含的正则表达式会导致浏览器验证该表达式的输入。如果它与模式不匹配或为空,则会发生错误。注意其他浏览器中的意外操作。
有一个简单的方法来实现这种类型的行为(比如如果我们想在输入字段中使用文本格式,但仍然希望显示数字键盘):
我的输入:
<input inputMode=“numeric” onChange={handleInputChange} />
提示:如果你想要这种类型的行为(逗号分隔的数字) 然后遵循handleInputChange实现(这是基于上述状态的反应)
截至2020年
<input type="number" pattern="[0-9]*" inputmode="numeric">
CSS技巧做了一篇很好的文章:https://css-tricks.com/finger-friendly-numerical-inputs-with-inputmode/