【问题标题】:remove specific field after clicking back in browser or using history.go(-1)在浏览器中单击返回或使用 history.go(-1) 后删除特定字段
【发布时间】:2010-03-13 07:13:28
【问题描述】:

我有一个带有 capacha 的表单,如果 capacha 输入错误,提交页面后会执行“history.go(-1)”,并且所有字段包括 capacha 输入都会重新显示在屏幕上

现在我有一个 js 可以明确这一点 - 但现在我在几个地方都需要它,我想知道是否可以在返回与 html 表单或任何相关的内容后清除表单字段

谢谢

【问题讨论】:

    标签: javascript html forms browser-history


    【解决方案1】:

    您是否尝试过查看cache controlling 验证码图片(或加载它的页面)?

    【讨论】:

      【解决方案2】:

      我认为完全使用“history.go(-1)”和 JavaScript 是个坏主意。 您必须在服务器端验证验证码,并在服务器端选择您必须呈现的页面?再次使用验证码或下一步。

      【讨论】:

      • Capacha 是服务器端的,但是当出错完成后它会返回 history.back - 这是我老板花了 45 美元从互联网上得到的代码
      • 好的。如果验证码是服务器端。如果验证码错误,为什么不能重新显示验证码页面?
      • 因为我将页面发送到页面上的表单,从查询字符串重建它会带来更多工作
      【解决方案3】:

      我认为仅使用 html 是不可能的,需要添加一些编程。

      您可以拥有在文档的onload 事件上调用的 js 函数。

      函数可以是这样的:

      function resetfields()
      {
        $("input[type=text]").val("");
        $("textarea").val(""); // if any textarea
      }
      

      你也可以在这个函数中使用一些 ajax 来每次获取一个新的验证码。

      您可以将此功能放置在您的主页面/标题页面中,这样您就不需要将其复制到所有页面(为此您可能需要使选择器更精确)。

      【讨论】:

        【解决方案4】:

        另一个选项是您可以在每次访问页面时重命名表单字段。将时间戳附加到名称。这样浏览器就不会自动填充它。您可能需要稍微调整后端代码来解决这个问题。

        【讨论】:

          猜你喜欢
          • 2012-06-28
          • 1970-01-01
          • 2016-12-11
          • 1970-01-01
          • 1970-01-01
          • 2018-05-22
          • 1970-01-01
          • 1970-01-01
          • 2020-09-17
          相关资源
          最近更新 更多