Webサイトを作成する際、フォームに入力したテキストがリアルタイムで表示される機能は、ユーザーエクスペリエンス(UX)を向上させる重要な要素です。たとえば、名前のプレビュー、リアルタイムコメント、ライブ検索機能などに活用できます。
本記事では、HTMLとJavaScriptを使って、フォームに入力したテキストをリアルタイムで表示するシンプルな機能を作成する方法を解説します。
初心者の方でも理解できるように、専門用語の説明も交えながら進めていきますので、ぜひ最後まで読んで実践してみてください!
JavaScriptとは?
JavaScript(ジャバスクリプト)は、Webページに動きをつけるプログラミング言語です。通常、WebサイトはHTML(構造)とCSS(デザイン)で構成されていますが、JavaScriptを使うことで、ボタンをクリックした際の動作や、リアルタイムでのデータ更新などのインタラクティブな機能を追加できます。
今回のリアルタイム入力機能も、JavaScriptの「イベント処理」という仕組みを使って実装します。
作成する機能の概要
今回作成するのは、以下のような機能です。
- テキスト入力フォームを用意する
- ユーザーが入力したテキストをリアルタイムでpタグに表示する
実際の動作イメージとしては、以下のようになります。
- フォームに文字を入力すると、即座に下のpタグに反映される。
- 入力内容を消すと、pタグの内容も消える。
次のセクションで、HTMLとJavaScriptのコードを記述していきます。
HTMLの記述
まずは基本となるHTML(HyperText Markup Language)を作成します。HTMLはWebページの構造を定義する言語で、テキスト入力欄(input
タグ)や、出力結果を表示するためのp
タグを用意します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>リアルタイム入力</title>
</head>
<body>
<h1>リアルタイム入力フォーム</h1>
<input type="text" id="textInput" placeholder="ここに入力してください">
<p>入力内容: <span id="outputText"></span></p>
<script src="script.js"></script>
</body>
</html>
HTMLのポイント
input
タグにid="textInput"
を指定し、ユーザーが入力する欄を作成。p
タグ内のspan
にid="outputText"
を設定し、ここにリアルタイムで入力内容を反映。script.js
というJavaScriptファイルを読み込む。
JavaScriptの記述
次に、リアルタイムでテキストを反映するためのJavaScriptを記述します。
document.addEventListener("DOMContentLoaded", function() {
// 入力フィールドと表示エリアを取得
const textInput = document.getElementById("textInput");
const outputText = document.getElementById("outputText");
// 入力があるたびにテキストを更新
textInput.addEventListener("input", function() {
outputText.textContent = textInput.value;
});
});
JavaScriptのポイント
DOMContentLoaded
はHTMLの解析(読み込み)が完了したタイミングで発火document.getElementById("textInput")
で入力フィールドを取得。document.getElementById("outputText")
で表示エリアを取得。input
イベントを利用し、ユーザーが入力するたびにtextContent
を更新。
実際に動かしてみよう
ここまでのコードをコピーして、index.html
と script.js
の2つのファイルを作成し、ブラウザで開いてみてください。
- フォームに文字を入力すると、下の
p
タグにリアルタイムで反映される。 - 文字を消すと、
p
タグの表示も消える。
See the Pen リアルタイム入力!JavaScriptでテキストを即時反映 by yuki (@yuki_web) on CodePen.
簡単なコードですが、リアルタイムで反映される動作を体験できるはずです。
応用編:スタイルを追加してみよう
デザインを少し工夫すると、より見やすくなります。CSSを使って、以下のようなスタイルを追加してみましょう。
body {
font-family: Arial, sans-serif;
text-align: center;
margin: 50px;
}
input {
padding: 10px;
font-size: 16px;
width: 300px;
}
p {
font-size: 18px;
color: #333;
margin-top: 20px;
}
スタイルのポイント
text-align: center;
で中央揃え。font-size
を大きくして見やすく調整。- 入力欄のサイズを適切に設定。
See the Pen Untitled by yuki (@yuki_web) on CodePen.
スマートフォンで見ている方はサイズを0.5にしてください!
レイアウトが中央揃えになったと思います。
まとめ
今回は、JavaScriptを使ってリアルタイムでテキストを反映するシンプルなフォームを作成しました。
学んだポイント!
- HTMLの基本構造(
input
とp
タグ) - JavaScriptのイベント処理(
addEventListener("input")
) - CSSを活用したデザインの調整
このようなリアルタイム反映機能は、検索ボックス、チャット、名前プレビューなど、さまざまな場面で応用できます。ぜひ自分のプロジェクトに取り入れてみてください!
次に学ぶべきこと
この機能をさらに発展させるために、次のステップを試してみましょう。
- ボタンを押すと入力がリセットされる機能
- 文字数制限を設ける機能
- リアルタイムで文字数をカウントする機能
これらを追加すると、より実践的なWebアプリが作れます!