ユーザーがブラウザで [更新] をクリックすると、ページが再読み込みされますが、フォーム フィールドの内容は保持されます。これが便利なデフォルトであることはわかりますが、一部の動的ページでは煩わしく、ユーザー エクスペリエンスが損なわれる可能性があります。
HTTP ヘッダーまたは同等のもので、この動作を変更する方法はありますか?
<input autocomplete="off">
これでうまくいくはずです:
<body onload="document.FormName.reset();">
FormName をフォームの名前に置き換えると、ユーザーがブラウザで更新をクリックすると、すべてのフィールドがリセットされます。
または、一部のフィールドのみをリセットする場合は、これをページの下部に追加します。
<script type="text/javascript">
document.getElementById('field1').value ='';
document.getElementById('field2').value ='';
document.getElementById('field3').value ='';
</script>
これにより、更新を含め、ユーザーがページに入るたびにフィールドがリセットされます
更新したくない入力に「オフ」に設定されたオートコンプリート属性を追加します。例えば:
<input type="text" name="pin" autocomplete="off" />
W3C リファレンスを参照 してください
リファレンスには記載されていませんが、少なくともFirefoxではチェックボックスでも機能します。
html ドキュメントの body load イベントからフォーム オブジェクトの reset() メソッドを呼び出して、フォームをクリアすることができます。
h1. 参考文献
メタ タグを使用してページをキャッシュしないように設定すると、問題が解決するのでしょうか。http://lists.evolt.org/archive/Week-of-Mon-20030106/131984.htmlもしそうなら、Javascript を無効にしたブラウザーで動作する利点があります。
フォーム上のデータは w3c 仕様の一部ではありません。これは、あなたの生活を楽にするブラウザ機能です。したがって、リロード後にデータを保持したくない場合は、Espo が言ったように、ロード後にすべてのフォームの値を null に設定できます。ページがキャッシュされていない場合でも、データはページの html コードの一部ではないため、フォームにデータが表示されます。これも試すことができます(うまくいくかどうかはわかりません):
<input type="text" name="foo" value="">