输入类型号在ipad上不起作用

问题描述 投票:6回答:3

我在离子中创建输入,只接受数字。这适用于除safari和ipad之外的所有浏览器和设备。我不希望用户输入除数字以外的任何内容。我试图对输入事件进行正则表达式验证,但这并不能阻止用户输入字母表。我尝试了keydown事件,但我没有得到keyDown事件的innerText。请帮忙

ipad safari ionic2
3个回答
10
投票

我知道这是一个老问题,但我碰巧遇到了同样的问题,我注意到最终对我有用的东西没有提供答案,所以我会为下一个人添加答案。

<input type="number" min="0" inputmode="numeric" pattern="[0-9]*" title="Non-negative integral number">

如果您感兴趣,This site解释了解决方案背后的原因。

它的要点是pattern="[0-9]*"是触发iOS显示数字键盘的原因,而minnumeric则确保其他操作系统和浏览器仍能与type="number"良好配合。

编辑:iPad的iOS 12.2不再支持pattern="[0-9]*"修复 - 也许使用type=tel


2
投票

你可以试试这个

<ion-input type="tel" inputmode="numeric" pattern="[0-9]*"></ion-input>

这将强制输入在iOS上的数字模式下,正则表达式只是为了确保它只获得数字。据我所知,这不适用于input="number",但这是一个旧的解决方案(这仍然适用于我)。所以你可以尝试使用number,如果它不起作用,可以回到tel

希望这会有所帮助:D


1
投票

如果可以,请提供您输入的示例代码。但你也可以尝试一下

<ion-item>
    <ion-label color="primary">Inline Label</ion-label>
    <ion-input placeholder="Text Input" type="number"></ion-input>
  </ion-item>

根据Ionic Inputs

您可以使用“text”,“password”,“email”,“number”,“search”,“tel”或“url”。作为输入类型。对不起,如果我弄错了你的问题。请尝试提供代码示例。谢谢 :)

© www.soinside.com 2019 - 2024. All rights reserved.