onSubmitによるユーザー関数の動作テスト
ユーザー関数の途中でエラーが発生すると送信が実行されることを検証。
フィールドに文字や数字を入れてみる。
数字の場合、どれもエラーは発生しない。
0の場合、これもエラーは発生しない。BとCでは変数nが「Infinity」となる。
文字を入れた場合、eval(s)でエラーが発生、BもCもalert()は実行されずフォームが送信される。
ユーザー関数の途中でエラーが懸念される場合、submitボタンとonSubmitを使用せず、buttonボタンにonClickを組み合わせた方が安全ということになる。
function calc_t() { var s = document.form2.textfield2.value; var n = 10 / eval(s); alert(n); return true; }
function calc_f() { var s = document.form2.textfield2.value; var n = 10 / eval(s); alert(n); return true; }