JavaScriptでイベント処理する方法|click・input・addEventListenerを初心者向けに解説【第11講】

前回の第10講では、JavaScriptを使ってHTML要素を取得し、テキストを書き換えるDOM操作を学習しました。

しかし、まだ大きな問題があります。

ユーザーが操作しても何も起きないことです。

例えば、ボタンを押しても反応しない。入力欄に文字を入力しても反応しない。

実際のWebサイトでは、ユーザーの操作に応じて画面が変化します。

  • ボタンを押したら商品をカートへ追加する
  • 検索欄へ入力したら候補を表示する
  • フォームを送信したら内容を送る
  • メニューをクリックしたら開く

これらを実現しているのがイベント処理です。

この記事では、JavaScriptのイベント処理の基本であるclickイベントとinputイベントを中心に、初心者向けにわかりやすく解説します。

イベントとは?

イベントとは、Webページ上で発生する出来事のことです。

例えば次のような操作はすべてイベントです。

  • ボタンをクリックする
  • 文字を入力する
  • フォームを送信する
  • マウスを乗せる
  • キーボードを押す

JavaScriptは、イベントが発生した瞬間に処理を実行できます。

つまりイベント処理とは、

何かが起きたら処理を実行する仕組み

のことです。

イベント処理の流れ

① ユーザーが操作する

↓

② イベントが発生する

↓

③ JavaScriptが処理を実行する

↓

④ DOMを書き換える

↓

⑤ 画面が更新される

現在のWebアプリケーションの多くは、この流れで動いています。

なぜイベント処理が重要なのか?

イベント処理を学ぶことで、単なる表示だけのページから、ユーザーとやり取りできるページを作れるようになります。

例えば次のような機能はすべてイベント処理で実現されています。

  • ECサイトのカート追加ボタン
  • SNSの投稿ボタン
  • Google検索フォーム
  • お問い合わせフォーム
  • ログイン画面

イベント処理はJavaScript学習の中でも特に重要なテーマです。

よく使うイベント一覧

イベント名 内容
click クリックした時
dblclick ダブルクリックした時
input 入力した時
change 入力内容が確定した時
submit フォーム送信時
mouseover マウスを乗せた時
keydown キーを押した時
load ページ読み込み完了時

初心者のうちは、まずclickinputを覚えれば十分です。

addEventListener()とは?

イベント処理を行うときはaddEventListener()を使用します。


要素.addEventListener(
  "イベント名",
  function () {
    実行したい処理
  }
);

少し長く見えますが、意味は単純です。

この要素で

↓

このイベントが発生したら

↓

この処理を実行する

JavaScriptのイベント処理は、ほぼすべてaddEventListener()から始まります。

clickイベントの使い方

まずはクリックを検知してみましょう。

HTML


<button id="btn">
クリック
</button>

JavaScript


const btn =
document.getElementById("btn");

btn.addEventListener(
  "click",
  function () {
    console.log("クリックされました");
  }
);

ブラウザで実行し、ボタンをクリックするとコンソールへメッセージが表示されます。

JavaScriptはクリックされるまで待機し、クリックされた瞬間に処理を実行しています。

クリックで文字を変更する

HTML


<p id="message">
こんにちは
</p>

<button id="btn">
変更
</button>

JavaScript


const message =
document.getElementById("message");

const btn =
document.getElementById("btn");

btn.addEventListener(
  "click",
  function () {
    message.textContent =
    "ようこそ";
  }
);

ボタンをクリックすると、「こんにちは」が「ようこそ」に変わります。

これがイベント処理とDOM操作を組み合わせた最初の実践例です。

クリックで状態を変更する

HTML


<p id="status">
未完了
</p>

<button id="btn">
変更
</button>

JavaScript


const status =
document.getElementById("status");

const btn =
document.getElementById("btn");

btn.addEventListener(
  "click",
  function () {
    status.textContent =
    "完了";
  }
);

Todoアプリやタスク管理アプリでは、このような処理が頻繁に登場します。

inputイベントの使い方

inputイベントは、入力欄へ文字が入力された時に発生するイベントです。

入力を検知する

HTML


<input id="name">

JavaScript


const name =
document.getElementById("name");

name.addEventListener(
  "input",
  function () {
    console.log("入力されました");
  }
);

キーボードを押すたびにイベントが発生します。

入力内容をリアルタイム表示する

HTML


<input id="name">

<p id="result"></p>

JavaScript


const name =
document.getElementById("name");

const result =
document.getElementById("result");

name.addEventListener(
  "input",
  function () {
    result.textContent =
    name.value;
  }
);

入力した文字がそのまま画面へ表示されます。

検索フォームやチャットアプリなどでよく使われる仕組みです。

挨拶メッセージを表示する

HTML


<input id="name">

<p id="result"></p>

JavaScript


const name =
document.getElementById("name");

const result =
document.getElementById("result");

name.addEventListener(
  "input",
  function () {
    result.textContent =
    "こんにちは " +
    name.value +
    "さん";
  }
);

例えば「田中」と入力すると、「こんにちは 田中さん」と表示されます。

valueとは?

inputイベントと一緒によく登場するのがvalueです。


name.value

valueは、入力欄に入力された値を取得するためのプロパティです。

入力欄
↓

山田

↓

name.value

↓

"山田"

フォーム処理や検索機能を作るときに必須となる知識です。

例題

例題1

ボタンをクリックしたら「こんにちは」を「こんばんは」へ変更してください。

例題2

入力欄へ入力した内容をそのまま表示してください。

例題3

ボタンをクリックしたら「赤」を「青」へ変更してください。

まとめ

  • イベントはWebページ上で発生する出来事
  • addEventListener()でイベントを監視できる
  • clickイベントでクリックを検知できる
  • inputイベントで入力を検知できる
  • valueで入力内容を取得できる
  • DOM操作と組み合わせると画面を動かせる

イベント処理はJavaScriptの中でも特に重要な知識です。

フォーム処理、API通信、ミニアプリ制作など、今後の講義でも何度も登場します。

まずはclickイベントとinputイベントを使いこなし、ユーザーの操作に反応するページを作れるようになりましょう。

次回予告

次回はJavaScriptからCSSを変更し、画面の見た目を動的に変化させる方法を学習します。

文字色を変更する、背景色を切り替える、ボタンを押してデザインを変えるなど、より実践的なWebページ制作へ進んでいきましょう。

コメント

タイトルとURLをコピーしました