フォームをサブミットする際にonsubmitで関数をしておくと、サブミットボタン(type="submit")を押す前に関数が実行されます。
onsubmitは入力チェックなどに向いています。例えば必須項目に値が入っていない場合はエラーとしてサブミットしない、などが可能になります。
以下のフォームを未入力のまま実行するとサブミットされません。
onsubmit="a();"ではなく、onsubmit="return a();"としないとサブミットされてしまうようです。
IE8でもChrome23でも動作確認します。
以下、ソースです。
<script type="text/javascript">
<!--
function a(){
if(document.getElementById("txt").value == ""){
alert("未入力です");
return false;
}else{
return true;
}
}
// -->
</script>
<form name="namae" method="post" action="test.php" target="_blank" onsubmit="return a();">
<input type="text" id="txt" name="field1" />
<input type="submit" value="送信" />
</form>