1. ホーム
  2. jquery

[解決済み] val()を使ってselectの値を設定しても、jqueryのchangeイベントが発生しないのはなぜですか?

2022-03-26 01:27:41

質問

のロジックは change() によって値が設定されたとき、イベントハンドラは実行されません。 val() しかし、ユーザーがマウスで値を選択すると実行されます。これはなぜでしょうか?

<select id="single">
    <option>Single</option>
    <option>Single2</option>
</select>

<script>
    $(function() {
        $(":input#single").change(function() {
           /* Logic here does not execute when val() is used */
        });
    });

    $("#single").val("Single2");
</script>

解決方法は?

なぜなら change イベントは、javascript のコードを介してではなく、ユーザーによって開始される実際のブラウザイベントを必要とします。

代わりにこうしてください。

$("#single").val("Single2").trigger('change');

または

$("#single").val("Single2").change();