競馬とは関係なのでスルーしてくださいmm

Javascriptで価格計算などを行う際、
---
document.getElementById("total").value = arguments;
---
などとテキストフィールドの値をセットしても、
onchangeイベントが発生しない。

そこでイベントを強制的というかエミュレートする方法を見つけたのでメモ。

// onChangeをエミュレート
var elem = document.getElementById("total");
// ブラウザ判定
if( /*@cc_on ! @*/ false )
{
// IEの場合
elem.fireEvent( "onchange" );
}
else
{
// Firefoxの場合
var evt = document.createEvent( "MouseEvents" ); // マウスイベント作成
evt.initEvent( "change", false, true ); // イベントの設定
elem.dispatchEvent( evt ); // イベントを強制的に発生
}

※onChangeイベントに関して、IEはフォーカスを外さないと反応しないという鬱陶しい振る舞いもこれで解決(^O^)/ IEなんて消えちまえ!俺のケツにキスしやがれっ!(`Δ´)てみんな思ってるよね~♪

元ソース
JavaScriptの動かないコード (中級編) clickイベントを強制的に発生させたい (fireEvent/createEventの使い方)