我遇到这样一种情况,由于某种原因,网页可能会在用户填写表单时刷新。不需要的效果是删除用户已经输入的数据。
是否有一种解决方案可以让表单数据在页面刷新时保持不变?
表单包括文本输入和选择。
最佳答案
你说 “我遇到了网页由于某种原因可能会刷新的情况”
,你的意思是用户可能会刷新页面,还是其他一些脚本会刷新页面?如果是后者,您可能应该尝试解决导致刷新的问题,而不是尝试保留表单数据。如果是前者,JavaScript 可能是适合您的解决方案。
您可以监听任何表单元素上的每个 keyup 事件。当触发 keyup 事件时,您序列化表单数据并将其写入 cookie(或网络存储,具体取决于您需要支持的浏览器),以保留最新数据。如果页面重新加载,或者如果用户离开页面并返回,cookie 可以在文档就绪时反序列化,您可以使用 cookie 中的数据重新填充表单。当您发布表单时,请务必同时清除 cookie,以确保用户下次加载页面时不会填写该表单。
更新
这是一个很好的blog post关于如何使用GSerializer用于使用 JavaScript 进行序列化和反序列化。
关于javascript - 在页面刷新时保留表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9423165/