[jquery]val()メソッドでセットした要素にイベントが発生しない

jquery logo

表題の通りです。

val()メソッドで値をセットしてもchangeイベントは発生しません。
ではどうするのか?

答え

$("#hoge").val('hoge').trigger("change");

こんな感じにするとイベントが発火します。

が、外部のライブラリでセットする場合はこういった書き方ができません。
調べてみましたが、いい方法はなさそうです。
一応、下記でタイマーイベントでトリガーを発行させると動作しますが、どうも
スマートなやり方ではないですね。。。どうしたものか。

//一秒後に実行
setTimeout(function(){
$("#hoge").trigger("change");
},1000);
タイトルとURLをコピーしました