JavaScript
jQuery
event

JQueryのval(値)呼び出し時のイベントについて

あまり使用頻度は低いが、気になって試したのでメモ。

JQueryのval(値)呼び出し時はイベントは発生するか?

JQueryでセレクタで取得した要素に対して値を設定する場合、val(設定する値)を使うと思う。

この時、値が変わるわけなのでonchengeイベントが発生するように思うが、実際は何のイベントも発生しない

val(値)でイベント発生するには

もしonchengeイベントの発生を期待している場合は、明示的にイベントを発生させてあげる必要がある。

val(値)でonchengeイベント発生させる
    $("#hoge").val("hogehoge").change();    //値を設定後、onchengeイベント発火!

(調べていないので恐らくだが、入力項目の入力欄にフォーカスインして値を変更、入力欄からフォーカスアウトした際にフォーカスイン時から値が変わっている場合にonchangeイベントが発火されているのではないか。このため、フォーカス遷移の伴わないval(値)ではonchangeイベントが発火しない。)