20

当用户在浏览器上点击刷新时,它会重新加载页面但保留表单字段的内容。虽然我可以看到这是一个有用的默认设置,但在某些动态页面上可能会很烦人,从而导致用户体验受损。

有没有办法在 HTTP 标头或等效项中改变这种行为?

4

6 回答 6

39
<input autocomplete="off">
于 2008-09-09T15:52:08.480 回答
8

这应该可以解决问题:

<body onload="document.FormName.reset();">

将 FormName 替换为您的表单名称,然后当用户在浏览器中单击刷新时,所有字段都将被重置。

或者,如果您只想重置某些字段,请将其添加到页面底部:

<script type="text/javascript">
    document.getElementById('field1').value ='';
    document.getElementById('field2').value ='';
    document.getElementById('field3').value ='';
</script>

这将在用户每次进入页面时重置字段,包括刷新

于 2008-09-09T15:53:32.097 回答
4

将设置为“关闭”的自动完成属性添加到您不想刷新的输入。例如:

<input type="text" name="pin" autocomplete="off" />

参见 W3C 参考

尽管参考文献中没有提到,但它也适用于复选框,至少在 firefox 上是这样。

于 2009-11-28T16:44:28.480 回答
2

您可以从 html 文档的正文加载事件中调用表单对象的 reset() 方法来清除表单。

h1。参考

于 2008-09-09T15:48:54.293 回答
0

我想知道,如果您将页面设置为不通过元标记进行缓存,那会解决问题吗?http://lists.evolt.org/archive/Week-of-Mon-20030106/131984.html如果是这样,它将有利于在禁用 Javascript 的浏览器上工作。

于 2008-09-09T15:49:56.990 回答
0

表格上的数据不是 w3c 规范的一部分。这是一项让您的生活变得轻松的浏览器功能。因此,如果您不想在重新加载后保留数据,您可以在加载后将所有表单的值设置为 null,正如 Espo 所说。即使页面没有被缓存,它也会在表单上显示数据,因为数据不是页面 html 代码的一部分。你也可以试试这个(不知道能不能用):

<input type="text" name="foo" value="">
于 2008-09-17T19:09:23.057 回答