仅在从SUCCESS登录页面单击后退按钮时重置表单,而不是从ERROR页面重置

时间:2013-08-24 21:12:46

标签: javascript jquery forms reset

我有一张表格。

成功提交将加载成功 .html页面。

如果出现错误(空字段或无效的电子邮件地址),则会加载错误 .html页面。

我想重置表单(清空所有字段)仅当访问者按下成功 .html中的浏览器后退按钮时。如果访问者按错误页面上的BACK按钮,则不应重置表单,即浏览器应该像通常那样(默认)。

当有人按下后退按钮返回表单时,此代码会重置表单:

$(window).bind("pageshow", function() {
  document.form_name.reset();
});

那么如何让表单页面知道访问者从何处返回(当人们按下浏览器的后退按钮时)?

我以为我可以定义一个变量(如果为true则重置,错误页面为false,成功页面为true)但由于某种原因这不起作用。这里的最佳做法是什么?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

好的,我想我已经解决了这个问题:

在成功页面上我添加了一行JS:

top.name='success';

在包含表单的页面上我添加了这个:

$(window).bind("pageshow", function() {
    if (top.name === "success") {
             document.form_name.reset();
                top.name="";}
});

如果启用了 JavaScript,它对我有效应该适用于大多数浏览器。也许不是最优雅的解决方案+取决于JS被启用但我想不出任何其他工作。我读到window.name方法不安全(其他页面可以读取window.name)但是“成功”这个词并不是真正的高度机密信息。