フォームのリセットボタンの挙動は、空のフォームに入力した文字のみに動作し、一度送信したのちにvalueに値を残すようなプログラムな場合はクリアできないようで、JavaScriptなどでクリアするのが多く採用されている動作だそう。
ネット上で挙げられているサンプルソースは大体このような感じになっています。
$('form').find("textarea, :text, select").val("").end().find(":checked").prop("checked", false);
しかし、なぜかvalueの中身は空になることはありませんでした。CSSでbackgroundの設定をする、alert()でポップアップ表示などの反応はあるのに、val(””)のみ稼働しない。
そこで、違う書き方により動作しました。それは「attr」で代用。
$("button").on("click", function () {
$('form :text, form textarea, form select').attr("value", "");
});
どれが正解でどれが間違いなのか分かりませんが、おそらくどちらも正解なのだと思います。しかし、動かなければ違う方法で構築する、それだけですね。