最初に作ったスクリプトではIEで正しく動作しませんでした。 そこで、スクリプトを工夫してIEでも動作するように改良してみました。
<SCRIPT LANGUAGE="JavaScript"> <!-- Code hiding from here function change(form, val) { in_val = val.value out_val = in_val * 2; form.ans.value = out_val; return false; } // end --> </SCRIPT> <FORM NAME="f" onSubmit="return change(this, this.num)"> <INPUT NAME="num" SIZE="5" ONCHANGE="change(this.form, this)"> x 2 = <INPUT NAME="ans" SIZE="5"> </FORM>
次のポイントはフォームがsubmitされるのを阻止することです。実際には値の 計算をしたいだけで、フォームをサーバに送りたいわけではありません。 JavaScriptではイベントハンドラでfalseを返すことで、submitを阻止する ことができます。この例ではchange()関数でfalseを返し、それをreturn でonSubmitイベントハンドラの結果として返すことで、submitをしないように しています(右図参照)。
NN4ではリターンキーを押した後beep音がなってしまいます。