FORMへの書き込みの不備などをCGIに送る直前にチェックすることが できます。以下の例はFORMに一つでも書き込まれていない項目が あれば警告windowを開いて、FORMのCGIへの送信を行いません。
スクリプトソース
<SCRIPT LANGUAGE="JavaScript"> <!-- function checkForm( form ) { for( i=0 ; i<form.elements.length ; i++ ){ if( form.elements[i].value == "" ){ alert("Write something!"); return false; } } return true; } // --> </SCRIPT> <FORM METHOD="POST" ACTION="" onSubmit="return checkForm( this )"> Write something: <INPUT TYPE="TEXT" NAME="input0"><BR> Write something: <INPUT TYPE="TEXT" NAME="input1"><BR> Write something: <INPUT TYPE="TEXT" NAME="input2"><BR> <INPUT TYPE="SUBMIT" VALUE="SUBMIT"> </FORM>
スクリプト実行結果
onSubmitでSUBMITボタンが押されたときに起動するイベントハンドラ の関数をこのように指定します。引数の this はここがFORMタグ内なので このformを管理するobjectの意味になります。 イベントハンドラの関数はSCRIPTタグで囲んだ別の所で定義します。
イベントハンドラの関数 CheckForm() では、与えられたFORMの 項目の数だけ各要素の値が空でないかを検査して、もし空なら 警告windowを表示させ、falseを返すことでFORMにCGIの起動を辞めさせます。 すべての項目が空でなければ、trueを返すことでFORMにCGIの起動を 始めさせます。