HTML
 Computer >> コンピューター >  >> プログラミング >> HTML

HTMLのinput要素でスマートフォンに数字キーボードを表示させる方法

私はここ半年間、サイドプロジェクトとしてトレーニング記録アプリを開発しています。ご想像のとおり、この種のアプリには数値の入力が欠かせません。

コードエディタのオートコンプリート機能を使うと、input要素のtype属性はデフォルトで「text」になります。

<input type="text" />

type="number" と type="text" の違い

type属性が「number」に設定されたHTMLのinput要素は、数値のみを受け付けます。この数値入力フィールドに文字を入力してみてください。

入力できませんよね。

一方、type属性が「text」のinput要素は、文字も数字も両方受け付けます。テキスト入力フィールドに数字と文字を入力してみてください。

はい、問題なく入力できました!

デスクトップでは気づきにくい問題

私が最初にアプリで回数(rep)と重量(weight)の入力欄を作ったとき、input要素のtype属性をデフォルトの「text」から「number」に変更していませんでした。そもそも考えることすらありませんでした。デスクトップPCでテストしている限り、数字の入力は簡単なので、特に気にならなかったのです。

しかし、iPhone 6でアプリをテストした瞬間、なぜ最初から正しいinputタイプを使うべきなのかが明白になりました。

input要素のtype属性が「text」に設定されている場合、その入力フィールドをタップすると、少なくともiPhoneでは(Androidでも同様だと思われます)、通常のテキストキーボードが表示されます。まるで誰かにメッセージを送るときのように。

こんな感じです:

HTMLのinput要素でスマートフォンに数字キーボードを表示させる方法

このネイティブキーボードでも数字を入力することはできますが、まず「123」ボタンをタップしなければなりません。これでは余計な一手間が発生してしまいます。

解決策:type="number" を指定するだけ

回数や挙げた重量を入力するためだけの入力フィールドなら、スマートフォンでは数字キーボード(テンキー)が表示されるのが自然です。

そのためには、input要素が数値入力を受け付けることを指定するだけでOKです。

こんな感じです:

<input type="number" />

iOS端末での表示結果はこちら:

HTMLのinput要素でスマートフォンに数字キーボードを表示させる方法

以上で完了です!たった一行の変更だけで、モバイルユーザーの入力体験は大きく向上します。フォームを作る際は、用途に合った適切なtype属性を最初から指定する習慣をつけましょう。

  1. HTMLで要素を読み取り専用にする方法|readonly属性の使い方を解説

    HTMLのフォーム要素を読み取り専用(編集不可)に設定するには、readonly 属性を使用します。この属性が指定された入力フィールドは、ユーザーが内容を書き換えることができなくなりますが、値はフォーム送信時にサーバーへ引き続き送信されます。 readonly属性の基本例 以下のコードでは、テキスト入力欄に readonly 属性を設定し、ユーザーが値「Amit」を編集できないようにしています。 <!DOCTYPE html> <html>    <body>       <h2>ログイン<

  2. HTMLで要素のタイプを設定するには?type属性の使い方を解説

    HTMLでは、type属性を使用することで要素のタイプを設定できます。ここでは、ユーザーからの入力を受け取るための<input>タグについて解説します。type属性は、テキスト入力(text)、チェックボックス(checkbox)、ラジオボタン(radio)など、さまざまなフォーム要素と組み合わせて使用されます。type属性で指定できる主な値text:1行のテキスト入力欄password:入力内容が隠されるパスワード欄checkbox:複数選択可能なチェックボックスradio:択一選択のラジオボタンsubmit:フォーム送信ボタンサンプルコード以下のコードを実行して、type属性の