フォームのリセットボタンの挙動は、空のフォームに入力した文字のみに動作し、一度送信したのちに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", "");
});

どれが正解でどれが間違いなのか分かりませんが、おそらくどちらも正解なのだと思います。しかし、動かなければ違う方法で構築する、それだけですね。