旅をするのに、飛行機に乗るなら飛行場。電車に乗るなら駅へ行く必要があります。 また、その場所へ行っても「旅をする為」のチェックがあります。切符を持っている かどうかとか、持ち込んではいけないものを持っていないとかさまざまです。 それらは、いずれも旅をするのに支障の無いようにする為のルールで あったりするわけです。極端な話、ルールを守らなくでも「移動」だ けなら可能ではあるわけですが。 文字列の旅は FORM から出発 <FORM> 〜 </FORM> 中に入る事によってサーバーへの旅の権利を得る事ができます。 また、出発する前にチェックを受けて、全てのチェックに通過してはじめて、 ブラウザがサーバーへ送り出してくれます。 その為に、発射スイッチが必要です 1) type="submit" のボタン このボタンを押すと、FORM の onsubmit イベントが起こります 2) onsubmit='return checkForm(this)' return は、checkForm でチェックされた結果を受け取る為に必要です。ブラウザ は、こうしておくと checkForm から return された内容を見る事ができます checkForm は、自由に作成できる「チェック機構」を持つ部屋です。 旅する文字列を全てチェックできるように、FORM 自身を示す、this を引き渡しています。 3) 問題があれば return false; return は、それを実行してしまうと、この「チェック機構」を持つ部屋をすぐ 出てしまいます。後に続くチェックの係の窓口に並ぶ事はありません。 ただ、作法として、どこがまずかったかブラウザに知らせる為に、focus と selectという行動を取ることが「最良のマナー」となっています。 ( しなくても良いです ) 4) 問題が無ければ return true; 全ての窓口で「承認」をもらって晴れて旅が始まる直前の状態です。ここから はもう止める事ができまません。手順に従って旅が始まります。
<script type="text/javascript"> function checkForm( obj ) { if ( obj.inp.value != "123" ) { alert("一致しません"); obj.inp.focus(); obj.inp.select(); return false; } if ( !obj.chk.checked ) { alert("チェックして下さい"); obj.chk.focus(); return false; } if ( !obj.rb[0].checked ) { if ( !obj.rb[1].checked ) { alert("どちらかを選んで下さい"); obj.rb[0].focus(); return false; } } alert("送信します"); return true; } </script> <form name="frm" onsubmit='return checkForm(this)'> <input type="text" name="inp"> <input type="checkbox" name="chk"> <input type="radio" name="rb"> <input type="radio" name="rb"> <br /> <input type="submit" value="送信"> </form>
|