jQuery 「イベント」フォーム要素の変更時イベント

input、textarea、selectの各要素に対し、値の変更が起きたときに発生するイベントです。厳密には、イベント発生のタイミングは要素の種類によって異なります。select要素だけ、マウスで選択を行ったと同時にイベントが発生しますが、他の要素ではフォーカスを失った時点でイベントが発生します。引数無しの.change()メソッドは、スクリプトからchange()イベントを強制的に発生させます。なお、jQuery1.4以降、changeイベントはInternetExplorerを含む各ブラウザでイベントバブリングに対応しています。子要素で起きた変更は親要素にも伝播します。また、.val()メソッドでフォーム要素の値を変更したときは、changeイベントは発生しません。

書式

$(対象要素).on('change', イベントハンドラ)
$(対象要素).trigger('change')
$(対象要素).change()
$('input').on('change',function(e){
   alert('change');
});
$('input').trigger('change');
$('input').change();

サンプル

すべてのフォーム要素のchangeイベントを検出し、要素の値を表示する

<body>
  <div class="main">
    <div class="header">
      <h1>サンプル</h1>
    </div>
    <div class="content">
      <form>
        <br>
        姓<br><input class="form-input" type="text" name="lastname"><br> 
        名<br><input class="form-input" type="text" name="firstname"><br> 
        メールアドレス<br><input class="form-input" type="text" name="email"><br>
        電話番号<br>
        <input class="form-input" type="text" name="phone"><br>
        職業 <br>
        <select multiple class="form-input" name="job">
          <option value="">-------</option>
          <option value="employee">会社員</option>
          <option value="self-employed">自営業</option>
          <option value="student">学生</option>
          <option value="homemaker">主婦・主夫</option>
        </select><br>
        <button class="button" type="button" name="submit">送信</button>
      </form>
      <div class="desc"></div>
    </div>
    <div class="footer">
      <hr>
      <p class="copyright">2019 xxxx all rights reserved.</p>
    </div>
  </div>
  <script>
  $(document).ready(function(){
    $('input,select').on('change', function(e) {
      $('.desc').append($(e.target).val() + '<br>');
    });
  });
  </script>
  </body>
実行結果
初期画面
実行結果
入力フォームの値を変更