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;
}