Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【HTML Living Standard】number属性値の使い方

number属性値の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

numberプロパティは、HTML要素の属性値として使用される際に、その値が数値形式であることを定義するものです。これは、特定の属性が整数または浮動小数点数といった数値を期待する場合に用いられます。例えば、<input type="number">要素のvalue属性や、<ol>要素のstart属性など、数値を直接指定する必要がある場面でこの概念が適用されます。

このnumberプロパティが適用される属性では、指定された値が有効な数値として解析されます。空白文字やテキスト、特別な記号などが含まれている場合、多くは無効な値として扱われたり、デフォルト値が適用されたり、あるいはエラーとして処理されたりします。数値の範囲やステップ数などの制約は、個々の属性(例: min, max, step)によってさらに細かく定義されます。システムエンジニアは、属性が期待する値の形式を理解し、適切な数値を指定することで、HTMLドキュメントの正確性と期待通りの動作を保証できます。これにより、ウェブアプリケーションのユーザーインターフェースが適切に機能し、データの整合性が保たれます。

公式リファレンス: <input type="number">

構文(syntax)

1<ol start="1">
2  <li>リスト項目1</li>
3  <li>リスト項目2</li>
4</ol>

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません

サンプルコード

HTMLで小数点を含む数値入力を設定する

1<!DOCTYPE html>
2<html lang="ja">
3<head>
4    <meta charset="UTF-8">
5    <meta name="viewport" content="width=device-width, initial-scale=1.0">
6    <title>HTML Number Input with Decimal</title>
7</head>
8<body>
9    <label for="decimalInput">
10        小数点を含む数値を入力してください (例: 12.34):
11    </label>
12    <!-- 
13        type="number": 数値入力フィールドを定義します。
14        step="0.01": 入力値の増減ステップを0.01に設定し、小数点以下2桁までの入力を許可します。
15        value="0.00": フィールドの初期値を小数点付きの数値に設定します。
16    -->
17    <input type="number" id="decimalInput" name="amount" step="0.01" value="0.00">
18</body>
19</html>

HTMLの<input>タグにtype="number"を指定すると、ユーザーが数値を入力するためのフィールドを作成できます。このnumberは、<input>要素のtype属性に設定する値であり、入力値が数値であることをブラウザに伝えます。これにより、ブラウザは数値入力に特化したインターフェース(例えば、モバイルデバイスでのテンキー表示や、デスクトップブラウザでの上下矢印ボタンなど)を提供することがあります。

サンプルコードでは、特に小数点を含む数値の入力を想定した設定がされています。step="0.01"という属性は、入力できる数値の最小増減単位を0.01に設定し、小数点以下2桁までの入力を許可しています。これにより、ユーザーは12.34のような数値を正確に入力できるようになります。value="0.00"は、この入力フィールドの初期値を0.00に設定するものです。step属性と合わせて小数点を含む初期値を設定することで、ユーザーは入力すべき値の形式を直感的に理解しやすくなります。

また、<label>タグのfor属性と<input>タグのid属性を紐付けることで、入力フィールドに説明文を提供し、アクセシビリティを高めています。name="amount"は、フォームがサーバーに送信される際に、この入力フィールドのデータがamountという名前で識別されることを示します。

今回のリファレンス情報にある「number」は、このtype属性の具体的な値そのものを指し、これ自体に引数や戻り値はありません。しかし、この値を指定することで、HTML要素が特定の機能(数値入力)を持つようになり、stepvalueといった関連属性と組み合わせることで、より詳細な挙動を制御できます。

type="number"は数値入力に特化したフィールドで、ブラウザが数値以外の入力を制限する基本的な機能を提供します。小数点を含む数値を許可する場合は、必ずstep="0.01"のように適切なステップ値を設定してください。stepの指定がない場合やstep="1"のままだと、小数点以下の数値は不正な入力とみなされる可能性があるため注意が必要です。また、value属性の初期値も、step属性で許可した形式に合わせると利用者にとって親切です。このブラウザによる入力チェックはあくまで補助的なものであり、システムを安全に運用するためには、フォーム送信後にサーバー側で入力値の厳密なバリデーションを必ず実施してください。minmax属性を使うことで、入力可能な数値の範囲をさらに細かく制限することも可能です。

HTMLで数値入力を制限する

1<!DOCTYPE html>
2<html lang="ja">
3<head>
4    <meta charset="UTF-8">
5    <meta name="viewport" content="width=device-width, initial-scale=1.0">
6    <title>数値入力の制限サンプル</title>
7</head>
8<body>
9    <h1>数値入力の制限デモンストレーション</h1>
10
11    <!-- 
12        type="number" を使用して数値入力フィールドを作成します。
13        min, max, step 属性で入力値を制限します。
14        - min="0": 最小値を0に設定
15        - max="100": 最大値を100に設定
16        - step="5": 5刻みでの入力(例: 0, 5, 10...)を許可
17        - value="25": 初期値を25に設定
18        - placeholder: 入力例を表示
19    -->
20    <label for="quantity">数量を入力してください (0から100、5刻み):</label>
21    <input type="number" id="quantity" name="quantity" min="0" max="100" step="5" value="25" placeholder="例: 25">
22</body>
23</html>

このサンプルコードは、ウェブページ上でユーザーが数値を入力するためのフィールドを作成し、その入力値を正確に制限する方法を示しています。HTMLの<input>要素にtype="number"を指定することで、数値専用の入力欄が生成されます。これにより、ブラウザは入力された値が数値であることを期待し、例えば、数値入力に適したキーボードを自動的に表示したり、数値以外の入力があった場合に警告を表示したりするなど、ユーザー体験を向上させます。

入力制限には、主にminmaxstepの各属性が使用されます。min="0"は入力可能な最小値を0に設定し、max="100"は最大値を100に制限します。さらに、step="5"は、入力値が5の倍数(例えば0, 5, 10, ...)でなければならないという制約を追加します。これにより、ユーザーが指定された範囲外や刻み以外の値を入力しようとした場合、ブラウザがエラーを通知したり、フォームの送信を阻止したりすることが可能です。value="25"は入力フィールドの初期値を25に設定し、placeholder="例: 25"は入力例として「25」と表示し、ユーザーに分かりやすくヒントを提供します。

このnumber属性値は、HTML要素の振る舞いを定義する設定値であり、一般的なプログラミング言語の関数のように直接引数を取ったり特定の値を戻したりするものではありません。ユーザーからの正確な数値入力を促し、無効な値がシステムに送信されることを防ぐ上で非常に重要な機能です。

このサンプルコードのinput type="number"は、数値入力に特化したユーザーインターフェースと基本的なクライアントサイドの検証機能を提供します。minmaxstep属性による入力制限は、ユーザーが正しく入力するのを助けるための補助的な機能です。

しかし、これらのクライアントサイドの制限は悪意のあるユーザーによって容易に迂回される可能性があります。そのため、セキュリティを確保し、データの整合性を保つためには、送信された入力値について必ずサーバーサイドでも厳格な検証を行うようにしてください。クライアントサイドの検証のみに頼るのは危険です。また、ブラウザやデバイスの種類によって、数値入力フィールドの見た目や操作感が異なる場合がある点も理解しておくと良いでしょう。

関連コンテンツ

関連IT用語

関連プログラミング言語