移动Safari - 如何默认为十进制输入的完整数字小键盘w/o type ="number",或禁用Safari输入类型="数字"更正

aoh*_*989 5 html javascript validation mobile-safari ios

我有一个相当基本的,但令人沮丧的问题,基本上是我一直在试图迫使输入领域表现得更像文本输入类型(如果他们不正确不正确数量的条目,比如"0..7"截断为"0"并且让JS表单验证和后端验证完成它的工作.但是,虽然我想让用户在字段中输入他们想要的任何内容(输入类型="文本"),但我想要显示全键盘键盘.

原版的:

<input type="number" name="test" class="answers" id="mileage" value="0.0" maxlength=5 />
Run Code Online (Sandbox Code Playgroud)

尝试修复:

适用于iPad,但不适用于iPod,因为iPod显示紧凑的数字键盘没有小数点:

<input type="text" name="test" class="answers" id="mileage" value="0.0" maxlength=5 pattern="\d*"/>
Run Code Online (Sandbox Code Playgroud)

在iPod上不起作用,因为它显示全文键盘,但不默认为带有小数的全键盘的"数字侧":

<input type="text" name="test" class="answers" id="mileage" value="0.0" maxlength=5 pattern="\d+(\.\d*)?"/>
Run Code Online (Sandbox Code Playgroud)

有人有主意吗?无论是防止移动Safari浏览器从修正输入号码类型(数字类型显示在iPod和iPad上正确的键盘,但已建成的修正上田当键盘隐藏),或迫使键盘是全面的iPod数侧键盘?

仅供参考:这听起来与我的问题非常相似,但我可能需要一个不同的解决方案.听起来他们希望默认情况下显示"完整"数字键盘,但是当输入其他字符时Safari没有自动编码.

强制使用数字键盘但允许使用标点符号:HTML5,移动版Safari

tag*_*awa 1

我知道这已经很旧了,但我看到这个问题被问了很多。

为了防止验证数字输入类型(和其他类型),您可以在元素novalidate上使用该属性<form>

<form novalidate>
  <input type="number" name="test" class="answers" id="mileage" value="0.0" maxlength=5>
</form>
Run Code Online (Sandbox Code Playgroud)

您仍然会使用数字键盘,但不会强制用户仅输入数字。