質問

ユーザーがブラウザで「更新」をクリックすると、ページが再ロードされますが、フォームフィールドの内容は保持されます。これが便利なデフォルトであることはわかりますが、一部の動的ページでは煩わしさがあり、ユーザー エクスペリエンスが損なわれる可能性があります。

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" />

見るW3C リファレンス

リファレンスには記載されていませんが、少なくとも 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="">
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top