
JavaScriptで入力文字数をカウント&制限するフォーム制御の方法
こんにちは!静岡県浜松市でWEBデザイナーをしています小瀧です。
お問い合わせフォームやSNS投稿欄、レビュー入力など、Webサイトでは「ユーザーが自由に文章を入力する場面」がたくさんありますよね。
でも、自由に書ける=自由に書かせすぎると、入力が長くなりすぎてデータベースを圧迫したり、デザインが崩れてしまうことも。
そこで必要なのが、「文字数のカウント」と「入力制限」。
この記事では、JavaScriptを使って
- リアルタイムで文字数をカウントする
- 指定した文字数を超えたら入力を防止する
- 残り文字数や警告メッセージを表示する
といった、使いやすくて親切なフォーム制御の方法を詳しく解説していきます!
なぜ文字数制限が重要なのか?
たとえば以下のような場面では、文字数制限は非常に重要です。
- お問い合わせフォームで文章が極端に長くなるとレイアウトが崩れる
- レビュー投稿欄で一定の制限を超えると読み手が疲れてしまう
- SNS連携で文字数制限(例:Twitterは280文字)に準拠したい
HTMLのmaxlength属性だけでも制限は可能ですが、それだけではユーザーに今何文字かが分かりにくいという欠点があります。
そのため、「カウント+警告+制御」までセットで実装するのが理想的なんです。
JavaScriptでリアルタイムにカウント&制限
まずは文字数をカウントしたい入力欄と、その数を表示する要素を用意します。
JavaScriptで、文字が入力されるたびにカウントし、表示を更新します。
HTML構造
See the Pen
Untitled by 小瀧賢 (@ekwwawpb-the-styleful)
on CodePen.
さらに丁寧に:残り文字数・警告表示を追加
より親切なUIを作るなら、「残り文字数」や「もうすぐ上限ですよ!」という警告メッセージもあるとベストです。
HTMLに警告領域を追加
See the Pen
Untitled by 小瀧賢 (@ekwwawpb-the-styleful)
on CodePen.
応用:Twitter風カウントダウン式のUI
SNSっぽく「あと○○文字」とだけ表示するスタイルも人気です。
See the Pen
Untitled by 小瀧賢 (@ekwwawpb-the-styleful)
on CodePen.
小さなことですが、こうしたUIの違いがユーザーの使いやすさに直結します!
実務での活用シーン
- ECサイトの商品レビュー欄に:100文字以内のレビュー
- LINE風チャット機能の投稿欄に:リアルタイム制御で無制限入力を防止
- コンタクトフォームの自由記述欄に:制限とガイドを両立
文字数を制限しつつ、使いやすいUIを保つことが、ユーザー満足度にもつながります。
まとめ
JavaScriptを使えば、ただ「文字数を制限する」だけでなく、ユーザーにとって親切で、ストレスのない入力体験を作ることができます。
- 残り文字数を明示する
- 入力上限に達したら制御する
- 必要に応じて警告やエラーメッセージも併用する
こうした「ちょっとした工夫」が、使われるフォームと、使われないフォームの差を生みます。
あなたのWebサイトでも、ぜひ取り入れてみてくださいね!













