モバイル ブラウザと非モバイル ブラウザの両方で使用されるクレジット カード番号入力フォームがあります。
モバイルにキーパッドを表示し、(オプションで) スペースを許可することをほのめかしたいので、「4111 1234 1234 1234」または「4111123412341234」のいずれかを受け入れる必要があります。
私が見つけたものから、オプションは次のとおりです。
a)<input type="tel"/>
-これは(少なくとも現在のモバイルブラウザでは)私が望むように動作するようですが、意味的に間違っています。
b)<input type="text" pattern="[\d ]*"/>
など - iPhone はいくつかのパターン( [0-9]*
、\d*
) をキーボードの操作として認識しますが、これは Android ではうまく機能しません。また、iPhone がスペースを許可するテンキーを提供するパターンがあるかどうかもわかりませんが、現在確認できる iPhone は手元にありません。
c) Javascript を使用してブラウザ検出を試み、(a) モバイル用と (b) 非モバイル用を使用します。ぎこちなく、(a)よりも実際の利点はありません。
<input type="number"/>
Chrome は少なくともそのような入力を number に強制するため、スターターではないようです。したがって、スペースで入力を分割します。
を使用するよりもテンキーを提供する必要があることをモバイル ブラウザーに示唆するより良い方法はありtype="tel"
ますか?
編集:
テンキー-webkit-*
を表示する必要があることを示唆するために、通常のテキスト入力フィールドに適用できるプロパティでしょうか?