【问题标题】:HTML - input value kept after RefreshHTML - 刷新后保留的输入值
【发布时间】:2010-12-20 11:18:13
【问题描述】:

通常,在 HTML 页面上进行刷新时,会保留输入字段的值(除非您使用 Ctrl+F5)。

是否有一个标题或其他类型的设置可以更改此行为,而无需更改表单上的任何内容或输入本身?

我有一个网站,在生产环境中刷新页面后不保留输入值。但是,当我在本地机器上测试此代码时,我没有这种行为。

【问题讨论】:

  • 您是想将此行为添加到您的某个页面,还是想弄清楚您提到的网站是如何做到这一点的,以便您可以禁用该行为?
  • 确实,似乎大多数回答的人都没有明白。我试图了解我正在检查的网站是如何做到的,它是为了改变这种行为。我正在更新我的问题,以便更清楚。
  • 这是 Firefox 独有的问题。请参阅以下“讨论”,了解关于这一项目的 10 年历史:bugzilla.mozilla.org/show_bug.cgi?id=46845 我发现评论 #123 最能说明问题

标签: html input refresh


【解决方案1】:

如果你设置autocomplete=off属性,内容将永远不会被存储。

或者,有很多方法可以使用 javascript 完成此操作,具体取决于您想要完成的任务,是清除整个表单(使用 reset() 方法)还是重置单个字段。

【讨论】:

  • 这没有被接受,因为问题要求不对输入进行任何更改。什么对我没有多大意义。 @sonnb
  • 你在哪里设置这个属性?在表单上还是在输入上?其他地方?
  • "...有很多方法可以做到这一点..." 哦,感谢您告诉我们
【解决方案2】:

您可以将 form.reset() 添加到正文 onload:

<html>
    <body onload="form1.reset();">
        <form id="form1">
            <textarea id="text"></textarea>
        </form>
    </body>
</html>

更新:虽然这可能是一种有用的技术,但我现在发现它实际上并不能回答提交者的问题。

【讨论】:

    【解决方案3】:

    据我所知,没有标准的方法来实现它,所以在禁用它之前,您首先需要确定网站是如何做到的。正如您可以从这里的各种不同答案中看到的那样,他们可以通过多种方式做到这一点。

    了解正在发生的事情的一个好方法是将代码简化为仍然重现问题的最简单的示例。删除所有图形、不需要的文本、样式表和其他格式、不相关的 javascript、不相关的 HTML 标签等,但始终检查您是否仍然可以重现问题。最终将留下如此少的代码,以至于导致字段被重置的原因应该很明显。您必须在生产机器上完成所有这些操作,因为您无法在本地复制它。为此,请复制脚本并将其重命名为 index2.html 等。请确保在执行此操作之前备份生产系统,以防出现问题。

    如果您在执行此操作后仍然无法理解如何解决问题,代码应该足够小,以便可以在此处发布,其他人将能够解决。

    【讨论】:

      【解决方案4】:

      在 DOM 上设置一个默认值怎么样?

      类似

      <input name="foo" id="foo" type="text">
      
      $('#foo').val('3')
      

      【讨论】:

      • document.getElementById('foo').value = 3 对于那些不使用 jquery 的人。
      • 这只是一个例子。你可以使用任何你想要的东西来代替'3'。
      【解决方案5】:

      我通常用这个:

      var reset_input_values = document.querySelectorAll('input');
      for (var i = 0; i < reset_input_values.length; i++) {
        reset_input_values[i].value = 'value you want ';
      }
      

      【讨论】:

        【解决方案6】:

        我解决了这个问题。

        解决方法:

        1. 在您的打字稿文件中添加一个布尔标志并默认设置为 disable(false)
        2. 在您的 html 上放置 *ngIf
        3. 开启ngAfterViewInit() 设置为true

        【讨论】:

        • 这是假设 OP 正在使用 angular
        猜你喜欢
        • 2016-12-20
        • 1970-01-01
        • 2021-03-19
        • 2010-11-04
        • 2011-06-29
        • 2011-08-23
        • 1970-01-01
        • 2012-12-06
        • 1970-01-01
        相关资源
        最近更新 更多