我在离子中创建输入,只接受数字。这适用于除safari和ipad之外的所有浏览器和设备。我不希望用户输入除数字以外的任何内容。我试图对输入事件进行正则表达式验证,但这并不能阻止用户输入字母表。我尝试了keydown事件,但我没有得到keyDown事件的innerText。请帮忙
答案 0 :(得分:8)
我知道这是一个老问题,但我碰巧有同样的问题,我注意到最终对我有用的东西还没有作为答案提供,所以我会添加答案下一个人。
<input type="number" min="0" inputmode="numeric" pattern="[0-9]*" title="Non-negative integral number">
This site解释了您感兴趣的解决方案背后的原因。
它的要点是pattern="[0-9]*"
是触发iOS显示数字小键盘的原因,而min
和numeric
则确保其他操作系统和浏览器仍可正常使用type="number"
。
编辑:iPad的iOS 12.2不再支持pattern="[0-9]*"
修复 - 也许使用type=tel
。
答案 1 :(得分:2)
你可以试试这个
<ion-input type="tel" inputmode="numeric" pattern="[0-9]*"></ion-input>
这将强制输入在iOS上的数字模式下,正则表达式只是为了确保它只获得数字。据我所知,这不适用于input="number"
,但这是一个旧解决方案(仍然适用于我)。因此,您可以尝试使用number
,如果不起作用,请回到tel
。
希望这会有所帮助:D
答案 2 :(得分:1)
如果可以,请提供输入的示例代码。 但你也可以尝试这个
<ion-item>
<ion-label color="primary">Inline Label</ion-label>
<ion-input placeholder="Text Input" type="number"></ion-input>
</ion-item>
您可以使用“text”,“password”,“email”,“number”,“search”,“tel”或“url”。作为输入类型。对不起,如果我弄错了你的问题。请尝试提供代码示例。谢谢:))