5

我有一个相当基本但令人沮丧的问题,基本上我一直在尝试强制输入字段表现得更像文本输入类型(它们不会更正不正确的数字条目,例如将“0..7”截断为“0” ) 并让 JS 表单验证和后端验证完成其工作。但是,虽然我想允许用户在字段中输入他们想要的任何内容(输入类型 =“文本”),但我想显示完整的数字键盘。

原来的:

<input type="number" name="test" class="answers" id="mileage" value="0.0" maxlength=5 />

尝试修复:

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

<input type="text" name="test" class="answers" id="mileage" value="0.0" maxlength=5 pattern="\d*"/>

不适用于 iPod,因为它显示全文键盘,但不默认为带小数的完整键盘的“数字侧”:

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

有人有想法么?防止 Mobile Safari 更正输入的数字类型(数字类型在 iPod 和 iPad 上显示正确的键盘,但在键盘隐藏时内置了对字段的更正),或者强制键盘位于完整 iPod 的数字侧键盘?

仅供参考:这听起来与我的问题非常相似,但是我可能需要不同的解决方案。听起来他们希望默认显示“完整”数字键盘,但没有 Safari 在输入其他字符时在字段中执行的数字自动格式化。

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

4

1 回答 1

1

我知道这是旧的,但我看到这个被问了很多。

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

<form novalidate>
  <input type="number" name="test" class="answers" id="mileage" value="0.0" maxlength=5>
</form>

您仍然可以获得数字键盘,但它不会强制用户仅输入数字。

于 2015-07-27T03:25:35.930 回答