多くのアイデアを読んで試した後、私が見つけたものはどれも、数字のみとコマまたはドットを含むキーボードを正確に表示するために機能しませんでした.
この入力でちょうど<input type="number">
とonkeyup
ハンドラーを使用して終了しました。ここでは、次のようなことを行います。
var previousValue = localStorage.getItem('myInputId');
if (input.getAttribute('type') === "number" && input.validity && input.validity.badInput) {
input.value = previousValue || "";
}
localStorage.setItem('myInputId', input.value);
これにより、有効性エラーが発生した場合に値を前の値に置き換えて、ユーザーが間違った文字を書き込むのを防ぎます (これが iOS オブジェクトなのか標準なのかはわかりません)。
私の側にはもっと複雑なものがあるので、このコードスニペットをテストしなかったことに注意してください。
このソリューションでは:
- iOS の場合: ユーザーは完全なクラシック キーボードを使用していますが、デフォルトで数字が開いており、間違った文字を書くことはできません。
- Android では、数字キーボードが最適です。
- 将来的には、iOS が数字用の適切なキーボードをトリガーし、javascript 部分が呼び出されないことを期待できます。