勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

フォームのresetについて

   2014/07/02  HTML

<input type="reset">についてクリックしたら
初期値というかvalueは全部クリアされるものと思ってたんだけど、
そうじゃなかった。

a.phpからa.phpにフォーム情報を送った場合に、
postなりget情報があってそれを元にフォーム状態をいじってしまうと、
リセットを押しても全部がクリアされる訳では無いみたい。

例えばセレクトメニューで1~3があり、初期値は1だけど3を選んで
サブミットする。次のページでselectedを3にしておくような仕様を
入れた場合に、2を選択してリセットボタンを押しても3に戻ってしまう。

なので、ちゃんとというか初期値に戻したいのであれば、
javascriptjQueryで操作する必要がありそう。

で、jQueryでやったとしてテキストボックスは思いつくけど、

ラジオボタン、セレクトメニュー、チェックボックスはすぐには

分からんかったんで調べて検証。

■ソース
<!DOCTYPE HTML>
<html lang="ja">
<head>
<meta charset="UTF-8">
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
function reset(){
$("#text_id").val("初期値");
$("input[name='radio_name']").val(['1']); //valのところでつけたいところを決められる
$("#check_id").attr("checked", false); //チェックをつけたいときはtrue
$("#select_id").val("0");
}
</script>
<title>reset</title>
</head>
<body>
<h1>reset</h1>
<form action="./index.php" method="post">
<input type="text" value="初期値" name="text_name" id="text_id"><br>
<input type="radio" value="1" name="radio_name">ラジオボタン1<br>
<input type="radio" value="2" name="radio_name">ラジオボタン2<br>
<input type="checkbox" id="check_id" value="チェックボックス"><br>
<select name="select_name" id="select_id">
<option value="0">選択して下さい</option>
<option value="1">セレクトメニュー1</option>
<option value="2">セレクトメニュー2</option>
</select>
<input type="button" value="クリア" onClick="reset();">
</form>
</body>
</html>

他の選択肢としてはページのリロードをするとか。

 - HTML

  関連記事

formでdisplay:none;にしてても送信される

formで特定の部分をdisplay:none;で非表示にしてても 内容は送信さ ...

HTML内に動画(mp4ファイル)を埋め込んで配信する方法

Webページ内にYoutubeとかを用いずに動画(mp4)ファイルを配信したいと ...

ブラウザがWebP対応の場合はそのまま表示し、非対応の場合はjpg/png画像を表示させる方法

ページ表示時にブラウザがWebP画像に対応している場合はそのまま表示し、非対応の ...

tableにスクロールバーを付ける

レイアウト的にiframeじゃなくtableにスクロールバーを つけたかった。 ...

formでファイルを選択した際にファイル名やサイズ、形式を調べる方法

フォームで画像などをアップロードする際に「ファイルサイズが大きすぎないか?」「拡 ...