データ送信テスト(UTF-8)

onSubmitによるユーザー関数の動作テスト

ユーザー関数の途中でエラーが発生すると送信が実行されることを検証。

データを送信

A. onSubmitのない送信
B. onSubmitのある送信/ユーザー関数calc_t()/戻り値はtrue
C. onSubmitのある送信/ユーザー関数calc_f()/戻り値はfalse

実験内容と結果

フィールドに文字や数字を入れてみる。

数字の場合、どれもエラーは発生しない。

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

閉じる