val() を使用して選択の値を設定すると、jQuery の変更イベントがトリガーされないのはなぜですか? 質問する

val() を使用して選択の値を設定すると、jQuery の変更イベントがトリガーされないのはなぜですか? 質問する

イベント ハンドラーのロジック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>

ベストアンサー1

このchangeイベントには、JavaScript コードではなく、ユーザーが開始する実際のブラウザ イベントが必要であるためです。

代わりに次の操作を行ってください:

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

または

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

おすすめ記事