Skip to content

イベント処理

公開日:November 17, 2024更新日:November 28, 2024
JavaScriptTypeScriptCoding📄

イベントの基本概念

イベントとは、ユーザーがウェブページ上で行う操作(クリック、キー入力、マウスオーバーなど)によって発生する出来事のことです。JavaScriptを使ってイベントに応じた動作を定義することで、ウェブページにインタラクティブな要素を加えることができます。例えば、ボタンをクリックしたときにポップアップを表示したり、入力フォームが正しく記入されていない場合にエラーメッセージを表示するなど、様々な用途に使われます。

イベントハンドラの設定

イベントハンドラとは、特定のイベントが発生した際に実行される関数のことです。JavaScriptでは、要素に対してイベントハンドラを設定することで、イベントが発生したときに自動的に特定の処理を行わせることができます。

  • addEventListener() を使ったイベントハンドラの設定addEventListener() メソッドを使うことで、任意のイベントに対してハンドラを設定することができます。これにより、イベント発生時に関数が実行されます。

    html
    <button id="myButton">クリックしてください</button>
    <script>
      let button = document.getElementById('myButton');
      button.addEventListener('click', () => {
        alert('ボタンがクリックされました!');
      });
    </script>

    上記の例では、ボタンがクリックされた際にアラートが表示されます。addEventListener() を使うことで、同じ要素に複数のイベントハンドラを追加することもできます。

  • インラインイベントハンドラ HTMLタグの属性として直接イベントを設定する方法もありますが、addEventListener() を使う方が可読性や保守性が高いため推奨されます。

    html
    <button onclick="alert('クリックされました')">クリックしてください</button>

フォームのバリデーション

フォームのバリデーションは、ユーザーが正しい形式で入力したかどうかを確認するために使用されます。JavaScriptを使ってリアルタイムでフォームの入力をチェックすることで、ユーザーがエラーに気づきやすくなり、入力の精度が向上します。

  • 基本的なバリデーションの実装 フォーム要素に対してイベントハンドラを設定し、inputsubmit イベントに応じて入力内容をチェックすることができます。

    html
    <form id="myForm">
      <label for="username">ユーザー名:</label>
      <input type="text" id="username" required>
      <button type="submit">送信</button>
      <p id="error" style="color: red;"></p>
    </form>
    <script>
      let form = document.getElementById('myForm');
      let usernameInput = document.getElementById('username');
      let errorMessage = document.getElementById('error');
    
      form.addEventListener('submit', (event) => {
        if (usernameInput.value.trim() === '') {
          event.preventDefault(); // フォームの送信をキャンセル
          errorMessage.textContent = 'ユーザー名を入力してください。';
        } else {
          errorMessage.textContent = '';
        }
      });
    </script>

    上記の例では、ユーザー名の入力が空の場合にエラーメッセージを表示し、フォームの送信を防止します。これにより、ユーザーは入力ミスを修正することができます。

  • リアルタイムバリデーション フォームのバリデーションは、入力中にリアルタイムで行うことも可能です。

    javascript
    usernameInput.addEventListener('input', () => {
      if (usernameInput.value.trim() === '') {
        errorMessage.textContent = 'ユーザー名を入力してください。';
      } else {
        errorMessage.textContent = '';
      }
    });

    上記の例では、ユーザーが入力をするたびにエラーメッセージが更新され、入力が正しい場合はメッセージが消えるようになっています。

イベント処理のまとめ

イベント処理を使うことで、ユーザーの操作に応じた動的な動作をウェブページに追加することができます。フォームのバリデーションなど、ユーザー体験を向上させるための機能も簡単に実装できます。まずは基本的なイベントハンドラの設定方法から学び、応用的な操作に取り組んでいきましょう。