ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

JavaScript:テキストボックスに値を入れてもchangeイベントが発生しない場合の対処

JavaScriptというかjQueryでテキストボックスに値を代入すると、代入されたら内容が変化するのでchangeイベントが発生すると思っていました。

$("input[name='abc']").val("テスト");

実際には発生しません。

内容が変化したらchangeイベントが発生しないとコードがややこしくなるだけなので、どうすればいいのかと調べました。
結果は、代入したらchange()を呼び出すという方法でした。

$("input[name='abc']").val("テスト").change();

f:id:AJYA:20180802055910p:plain
unsplash-logoCrew

やってみたら確かにchangeイベントが発生するようになりました。
予想外の方法で実現できました。