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