【JavaScript初心者必見】HTML onChangeイベントをコード例を用いて解説

公開日: 2021.12.18
更新日: 2024.01.04
HTML onChangeイベントをコード例を用いて解説

HTML onChangeイベントとは

onChangeイベントとは、ユーザー操作による、値の変更が確定した時に発生するイベントになります。例えば、フォームに値が入力された時やチェックボックスが選択された時です。

この記事ではJavaScriptを使う上で必須な知識「onChange」を解説しています。最後まで読むことで、簡単な翻訳システムを作成することができます。

※お手元にVisualStudioCodeとGoogleChromeを用意していただく必要があります。

環境構築

  • VisualStudioCode(コードエディター)
    https://azure.microsoft.com/ja-jp/products/visual-studio-code/
  • GoogleChrome(ブラウザ)
    https://www.google.co.jp/chrome/?brand=RPHE&gclid=Cj0KCQiAsqOMBhDFARIsAFBTN3dUVNqcF4gIyJsnpzcZTBeoFgLN16AGGeey6e5k7N8KAc44-1pq0RgaAsNLEALw_wcB&gclsrc=aw.ds
  • onChangeの書き方

    onChangeの書き方を2つに分けて解説します。

    inputタグ(textフォーム)の書き方

    inputタグのtext型を使用し、フォームに入力した値を表示する処理をonChangeで実装してみましょう。

    <!DOCTYPE html>
    <html lang="ja">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>textOnchange</title>
    </head>
    <body>
        <input type="text" name="name"/>
        <p id="inputText"></p>
        <script>
            const input = document.querySelector('input');
            const log = document.getElementById('inputText');
        
            input.addEventListener('change', updateValue);
        
            function updateValue(e) {
                log.textContent = e.srcElement.value;
            }
    
        </script>
    </body>
    </html>

    ざっくり解説すると、フォームに入力された値をinputという変数に格納し、pタグに「addEventListener」で変数inputを追加しています。

    長いプログラムなので、以下に簡単な解説を追記します。もっと詳細を知りたい場合は「MDN Web Docs」などで詳細仕様がまとまっていますのでご確認ください。

    メソッド名説明文
    querySelector()任意のHTML要素を検出・取得することができる
    getElementById()HTML要素のidを指定して要素を取得することができる
    addEventListener()イベントを検知する対象に対してイベントを追加することができる。
    ※今回の場合だと、フォーム入力を検知して、pタグに入力値を追加しています。

    GoogleChromeで確認すると以下のように入力フォームが出現し、入力すると下に入力内容が反映されるはずです。もし反映されない場合はフォーム以外のブラウザ上をクリックしてみてください。

    実行画像

    selectタグを使った書き方

    2つ目はselectタグを使用し、選択した英単語を日本語に変換するプログラムを書いてみます。

    <!DOCTYPE html>
    <html lang="ja">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>onchange</title>
    </head>
    <body>
        <label>選択された単語を翻訳します:
            <select class="translation" name="translation">
              <option value="">1つ選択してください …</option>
              <option value="リンゴ">apple</option>
              <option value="みかん">orange</option>
              <option value="スイカ">watermelon</option>
            </select>
          </label>
          
          <div class="result"></div>
          <script>
            const selectElement = document.querySelector('.translation');
            
            selectElement.addEventListener('change', (event) => {
                const result = document.querySelector('.result');
                result.textContent = `それは ${event.target.value} です`;
            });
          </script>
    </body>
    </html>

    appleを選択するとoptionタグのvalueである「リンゴ」が変数に格納され、resultクラスにaddEventListenerで 「それは リンゴ です」というテキストが追加されます。結果として、以下のようになったのではないでしょうか。

    実行画像

    まとめ

    onChangeを使うことで、ユーザーの行動によってWEBの表示内容を変更できることが分かったと思います。今回紹介した使い方はほんの一部なので、このコードを使ってご自身でカスタムすることでより一層理解が深まります。

    ここまで読んでいただき、ありがとうございました。JavaScriptのメソッドはコードが長いので、初見で挫折しやすいポイントですが、一つづつ理解していくことで動きが読めるようになります。特にイベント発火→変数代入→イベント追加の流れがわかるととても楽しくなってくるので、いろいろ試してみてください。

    関連記事

    資料請求

    • 短期集中で最速エンジニア転職を実現-転職成功者インタビュー一覧

      DMM WEBCAMPでは転職成功率98%を実現しています。本資料では、元警察官や元ラーメン屋など様々なバックグラウンドを持つ卒業生の声をお届けします。

      資料をダウンロードする
    • IT技術がもたらす3つの変化と身につけるべきスキル

      IT技術の発展により、今後10~20年程度で47%の仕事がなくなると言われています。どのような変化が訪れ、私達はどのようなスキルを身につけるべきかを解説します。

      資料をダウンロードする
    • 未経験がフリーランスエンジニアになる方法-年収アップで自由な働き方を手に入れる

      働き方改革やリモートワークの影響でフリーランスという働き方の人気は高まりつつあります。フリーランスエンジニアとして活躍するために必要な情報をお届けします。

      資料をダウンロードする

    © 2024 WEBCAMP MEDIA Powered by AFFINGER5