1

この質問は、入力テキスト フィールドに数字のみを入力できるようにすることを扱います。負号と小数を許可する必要があることを除いて、同じことを行う必要があります。また、このソリューションは、 iOS 6およびiOS 7の Mobile Safari で動作する必要があります。

keyupイベント ハンドラーでキーコードをチェックすることに基づく承認済みの解決策をテストしました、この解決策は次の文字を入力できるため、私のiPad では機能しません。

()$&@!

以下のコードは、このソリューションに基づいています。

('input.numeric').keyup(function(e) {
    this.value = (this.value.replace(/[^0-9.\,-]/g, ''));
});

このコードは、私がテストしたデスクトップ ブラウザ (Chrome など) では問題なく動作しますが、Mobile Safariではうまく動作しないようです。iOS 5では、これにより数字とマイナス記号を入力できますが、入力した文字の前にカーソルが表示されることが多く、カーソル位置が奇妙に動作します。iOS 6では、何らかの理由でマイナス記号の入力が許可されず、数字のみが許可されます。

Mobile Safariで正しく動作するソリューションを持っている人はいますか? ここで純粋な Javascript ソリューション、またはjQueryのみに依存するソリューションを探しています。「このライブラリまたはそのライブラリを使用してください」と答えたり、Javascriptの検証が安全ではないというコメントをしたりしないでください。

4

1 に答える 1