質問
ユーザーがブラウザで「更新」をクリックすると、ページが再ロードされますが、フォームフィールドの内容は保持されます。これが便利なデフォルトであることはわかりますが、一部の動的ページでは煩わしさがあり、ユーザー エクスペリエンスが損なわれる可能性があります。
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>
これにより、更新を含め、ユーザーがページに入るたびにフィールドがリセットされます。
更新したくない入力に「off」に設定された autocomplete 属性を追加します。例えば:
<input type="text" name="pin" autocomplete="off" />
リファレンスには記載されていませんが、少なくとも Firefox ではチェックボックスでも機能します。
HTML ドキュメントの本文読み込みイベントからフォーム オブジェクトのreset() メソッドを呼び出して、フォームをクリアできます。
h1.参考文献
メタタグを通じてページがキャッシュされないように設定すれば、問題は解決するでしょうか? http://lists.evolt.org/archive/Week-of-Mon-20030106/131984.html そうすれば、JavaScript が無効になっているブラウザでも動作するという利点があります。
フォーム上のデータは w3c 仕様の一部ではありません。これは、あなたの生活を楽にするブラウザの機能です。したがって、Espoが言ったように、リロード後にデータを保持したくない場合は、ロード後にすべてのフォームの値をnullに設定できます。ページがキャッシュされていない場合でも、データはページの HTML コードの一部ではないため、フォームにデータが表示されます。これも試してみることができます (うまくいくかどうかはわかりません)。
<input type="text" name="foo" value="">