« JavaScript 第5版 & JavaScriptクイックリファレンス 第5版 | メイン | JavaScript で 0 - 9 のランダムな整数を取得 »

IE と FF での挙動の違い --- ラジオボタンの onchange イベント

HTML上でラジオボタンでYes/Noの選択肢を作ったとします。

で、このラジオボタンが変わったときにJavaScriptの関数を呼び出し、ラジオボタンの状態に応じて動作させたいとき、以下のようにonchangeイベントで書くとIEとFFで動作が変わってしまいます。

<input type="radio" name="moge" onchange="javascript:hoge();">Yes
<input type="radio" name="moge" onchange="javascript:hoge();">No

FFがラジオボタンのcheck状態が変わった後に関数が呼び出されるのに対して、IE6ではcheck状態が変化する前に関数が呼び出されてしまいます。

ということで、こういうときはonchangeではなく、onclickイベントを利用するとうまくいきます。

<input type="radio" name="moge" onclick="javascript:hoge();">Yes
<input type="radio" name="moge" onclick="javascript:hoge();">No