0

これは入力です(数字キーボードを使用する必要があります)

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

これは入力に接続されたJSです

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

ここで、formatNumberはパターン###。###。###で値をフォーマットします。つまり、ドットは小数ではなく千の区切り文字として使用されます。説明されている動作はAndroidおよびデスクトップブラウザで機能しますが、iPhoneでは次のように失敗します。

  • 123123は123,123になります
  • 123000は123になります

プログラムでこの動作をオフにする方法は?

4

1 に答える 1

0

これは私がこれまでに見つけた最良の答えです

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

したがって、type = "text" with 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 に答える