数量ステッパー
数量ステッパーは、マイナスとプラスのボタンで数値を 1 ずつ増減させる入力パーツです。中央の入力欄は readonly にして直接編集をさせず、ボタン操作だけで値を変えることで、想定外の文字や空欄が入るのを防いでいます。
解説
数量ステッパーは、マイナスとプラスのボタンで数値を 1 ずつ増減させる入力パーツです。中央の入力欄は readonly にして直接編集をさせず、ボタン操作だけで値を変えることで、想定外の文字や空欄が入るのを防いでいます。JavaScript は内部のカウンタ変数を増減し、その値を入力欄へ反映するだけのわかりやすい構成で、マイナス側には 1 を下回らないようにする下限チェックが入っています。
よく使う場面
- カートやフォームでの購入数・人数の指定
- 予約システムの宿泊数やチケット枚数
- 設定画面での回数や個数のような小さな数値入力
増減の刻みはカウンタへ足し引きする値で変えられ、上限を設けたい場合はプラス側にも条件を足します。注意点として、見た目だけでなく送信時に正しい数値が渡るよう、フォーム連携では name 付きの入力欄に値を入れる設計にしてください。アクセシビリティ面では、各ボタンに役割がわかるラベルを付け、キーボードでも増減できるようにすると、より使いやすくなります。
よくある質問
増える単位や上限を変えられますか
増減の刻みは、ボタンを押したときに足し引きする数値を変えれば調整できます。上限を付けたい場合は、プラス側にも下限と同じように上限を超えないチェックを追加します。
入力欄に直接数字を打てないのはなぜですか
想定外の文字や空欄が入るのを防ぐため、欄を読み取り専用にしています。手入力も許したい場合は読み取り専用を外し、入力された値が数値の範囲内かを確認する処理を足してください。