81

Apple のドキュメントによると、タイプの入力要素をセットアップするとnumber、数字キーパッドを取得する必要があります。

<input type="number"/>

number: 数値を指定するためのテキスト フィールド。iOS 3.1 以降で数字パッド キーボードを起動します。

めちゃくちゃにするのはほぼ不可能に見えます。ただし、この単純なフィドルを iPhone またはシミュレーター (両方とも iOS6) で表示すると、数字キーパッドが表示されず、代わりに標準のアルファベット キーボードが表示されます。

http://jsfiddle.net/Cy4aC/3/

ここで一体何を台無しにしたのでしょうか?

ここに画像の説明を入力

4

6 に答える 6

149

パターンを指定する必要があります。

<input type="number" pattern="\d*"/>

anumberは負の値または浮動小数点を使用できるため、数字のみのパターンを指定しない限り、キーボードで-and.および,を使用できるはずです。

ここに画像の説明を入力

于 2013-01-21T21:47:12.860 に答える
4

これがあなたが望むものかどうかはわかりませんが、input type = "tel" は "電話番号パッド" を提供します。

于 2013-01-21T21:43:08.373 に答える
0

多くのアイデアを読んで試した後、私が見つけたものはどれも、数字のみとコマまたはドットを含むキーボードを正確に表示するために機能しませんでした.

この入力でちょうど<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 部分が呼び出されないことを期待できます。
于 2018-02-22T16:58:55.717 に答える