2012-02-23 62 views
3

我有一种情况,出于某种原因网页可能在用户填写表单时刷新。不希望的效果是消除用户已输入的数据。保留页面刷新时的表单数据

有没有一种解决方案可以让页面刷新时保持表单数据?

表单包含文本输入和选择。

回答

1

你说"I have a situation where for some reason a Web page might refresh",你的意思是说用户可能刷新页面,或者它是否刷新页面的其他脚本?如果是后者,您应该尝试修复导致刷新的问题,而不是尝试保留表单数据。如果是前者,JavaScript可能会成为您的解决方案。

您可以侦听任何表单元素上的每个关键事件。当一个keyup事件被触发时,您将表单数据序列化并将其写入cookie(或webstorage,取决于您需要支持的浏览器),以保留最新的数据。如果页面重新加载,或者用户离开页面并返回,则cookie可以在文档就绪的情况下反序列化,并且可以使用cookie中的数据重新填充表单。发布表单时,请确保也清除Cookie,以确保下次用户加载页面时表单未填满。

更新

下面是有关如何使用GSerializer序列化的反序列化的JavaScript良好的blog post

+0

谢谢。我知道我可以使用jQuery进行序列化,但是反序列化将如何工作?有没有一个功能,或者我必须从头开始编写脚本? – Christophe 2012-02-24 00:03:28

+0

页面刷新不在用户的控制之下,其目的是更新页面内容(无ajax)。 – Christophe 2012-02-24 00:05:20

+0

@Christophe使用JavaScript更新了我的答案,并提供了关于序列化/反序列化的一些信息。 – 2012-02-24 00:14:39

1

甲建议的方法

  1. 当用户填写表单,具有JavaScript的运行,在LocalStorage缓存输入的数值,一个cookie,或者通过AJAX会话变量。

  2. 在页面加载时,检查是否存在这些条目,然后用JavaScript填充表单。

  3. 在表单提交中,清除条目。

相关问题