フォームのリセットボタンが押されたら処理を行う

説明

入力フォームのリセットボタンが押された時に処理を行うにはonresetにリセット前の処理を指定します。サンプルではリセット前に確認のダイアログを表示し、結果をreturnで返してします。resetイベントではイベントハンドラからの戻り値がtrueであれば送信、falseであれば送信しないようになっています。サンプルのようにconfirm()での確認ダイアログの戻り値を利用するとOKボタンが押された時は内容がリセットされ、キャンセルボタンが押された時には内容はリセットしないことになります。
JavaScriptテクニック ブック  詳しい解説などはJavaScriptテクニック ブックを参照してください。

サンプルコード [実行]

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>JavaScript Sample</title>
<link rel="stylesheet" type="text/css" href="main.css" media="all">
<script type="text/javascript" src="main.js"></script>
</head>
<body>
<h1>フォームのリセットボタンが押されたら処理を行う</h1>
<form action="./regist.cgi" method="get" id="mainForm" name="mainForm">
名前:<input type="text" name="userName" id="userName"><br>
住所:<input type="text" name="userAddress" id="userAddress"><br>
<input type="reset" value="リセット">
<input type="submit" value="送信">
</form>
</body>
</html>

window.onload = function(){
document.getElementById("mainForm").onreset = function(){
return confirm("内容をリセットしますか?");
}
}