我在离子中创建输入,只接受数字。这适用于除safari和ipad之外的所有浏览器和设备。我不希望用户输入除数字以外的任何内容。我试图对输入事件进行正则表达式验证,但这并不能阻止用户输入字母表。我尝试了keydown事件,但我没有得到keyDown事件的innerText。请帮忙
我知道这是一个老问题,但我碰巧遇到了同样的问题,我注意到最终对我有用的东西没有提供答案,所以我会为下一个人添加答案。
<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
。
你可以试试这个
<ion-input type="tel" inputmode="numeric" pattern="[0-9]*"></ion-input>
这将强制输入在iOS上的数字模式下,正则表达式只是为了确保它只获得数字。据我所知,这不适用于input="number"
,但这是一个旧的解决方案(这仍然适用于我)。所以你可以尝试使用number
,如果它不起作用,可以回到tel
。
希望这会有所帮助:D
如果可以,请提供您输入的示例代码。但你也可以尝试一下
<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”。作为输入类型。对不起,如果我弄错了你的问题。请尝试提供代码示例。谢谢 :)