なぜか分かりませんが、時間が経ってからは何か問題があると言えます。Androidキーボードの入力リスナー(onkeypress、onkeydown)が数字のキーボードでない場合
私はそれがのみ番号(数字[0-9])と何よりもを受け入れるようにしたい、簡単な入力
<input type="number">
を持っています。これを達成するために、イベントのキーコードを制御するイベントリスナーを追加しました。
ほとんどすべてのプラットフォームで動作する特別なものはありません。問題はAndroidに付属しています。ここで
タイプは、=「数」
は、数字キーボードが現れます - それは素晴らしいことだ - また、いくつかの他の文字(コンマ、ドット、ハイフン...)で。あなたはこの特殊文字のいずれかを押したときの動作は奇妙です:
- OnKeyPressイベント:絶対にはを発射ない(なぜ???)
- OnKeyDownイベント:イベントが発射され、相対的な関数が呼び出されます。問題は、ブラウザが既に文字「」(なぜ?)をタイプしているため、「イベント」の「preventDefault」機能を呼び出すことができないということです。
- 入力イベント:イベントは発生していますが、「イベント」オブジェクトの「コード」と「どの」プロパティは未定義です。また、以前のように、ブラウザにはすでに文字「」が入力されています。
私は何が欠けていますか?
私の環境はAngularJsによってパワードされるので、私はディレクティブの内部にイベントリスナーを設定しました。しかし、jQueryで同じことをしても問題は解決しません。
"$ parsers"を使用して、私のカスタム値を不要な文字なしでプッシュすることをお勧めします。とにかくこれは動作しません入力の種類が "数字"であり、数字だけが期待されているので(Androidのブラウザが何か間違っていると言う別の方法です)
ここにはworking FiddleがありますAndroidで
おかげ
完璧ではありませんが、これが最良の選択肢だと思います。 –