[英]Can I save serialized form data?
在我继续努力理解哈希标签和页面导航的过程中,如果用户使用浏览器的导航按钮(例如,后退和前进),我将遇到重新提交表单数据的障碍。
我使用表单数据的函数如下:
if(page == "/visits_results") {
$('#start').val(start);
$.post("visits_results.php", $("#profile_form_id").serialize(),
function(data) {
$('#search_results').html(data);
location.href = "#visits_results=" + start;
});
}
如果表单仍然可见,则可以正常工作,例如,如果我使用分页,它将按我期望的那样执行。
我的问题是,当用户单击浏览器的后退按钮(该表单现已被删除),然后他们单击浏览器的前进按钮时。 事件被触发,但是我的序列化表格数据现在为空。 有什么方法可以缓存表单数据,以便我可以继续调用它?
有什么想法吗?
最好的选择(我认为)是将序列化数据存储在cookie中。 当用户返回到他/她已经填写的页面时,请从cookie中检索数据,对其进行反序列化,然后将其放回其所属位置。
Cookies是相当琐碎的,有一个不错的跨浏览器实现,可以在quirksmode上读/写cookie:
或者,如果您想使用插件:
您可以使用http://jsfiddle.net/zDPjm/等 localStorage轻松保存数据
好吧,当然,您可以做一些非常简单的事情,例如:
if ($("#profile_form_id").serialize() != "") serializedFormData = $("#profile_form_id").serialize();
$.post("visits_results.php", serializedFormData, /* Rest of Code */
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.