0

这是输入(应使用数字键盘)

<input type="number" id="Amount" maxlength="8" autocorrect="off"/>

这是附加到输入的 JS

$("#Amount").change(function() { this.value = formatNumber(this.value); });

其中 formatNumber 格式化模式中的值 ###.###.### 即点用作千位分隔符,没有小数。所描述的行为适用于 Android 和桌面浏览器,但在 iPhone 上以这种方式失败:

  • 123123变成123123
  • 123000变成123

如何以编程方式关闭此行为?

4

1 回答 1

0

这是迄今为止我找到的最好的答案

<input type="type" id="Amount" maxlength="8" autocorrect="off" pattern="[0-9]*" />

因此, type="text" 和 pattern="[0-9]*" 将触发数字键盘,而不会自动格式化货币。在 Apple 设备(iPad、iPhone)上运行良好,但不会在 Android 设备上触发数字键盘。这就是需要这个JS的方式:

var ua = navigator.userAgent.toLowerCase();
var isAndroid = ua.indexOf("android") > -1;
if(isAndroid) {
   $("input[pattern='[0-9]*']").prop("type", "number");  
}
于 2013-01-24T07:58:02.113 回答