Javascript 页面刷新后保存表单状态
我有一个复选框列表 如果在用户提交表单之前刷新了页面,我希望保留复选框(选中或未选中)的状态 Ie:用户选择选项1、选项4和选项5。页面刷新,选项1、选项4和选项5保持选中状态 我曾经考虑过序列化然后储存一块饼干,但我就是不能把我的脑袋放在它上面Javascript 页面刷新后保存表单状态,javascript,jquery,forms,serialization,cookies,Javascript,Jquery,Forms,Serialization,Cookies,我有一个复选框列表 如果在用户提交表单之前刷新了页面,我希望保留复选框(选中或未选中)的状态 Ie:用户选择选项1、选项4和选项5。页面刷新,选项1、选项4和选项5保持选中状态 我曾经考虑过序列化然后储存一块饼干,但我就是不能把我的脑袋放在它上面 任何帮助都将不胜感激。当用户选择此选项时,您可以将数据存储在cookie中(您可以使用) $('#select_element').change(function() { $.cookies.set('check_box', $(this).val
任何帮助都将不胜感激。当用户选择此选项时,您可以将数据存储在cookie中(您可以使用) $('#select_element').change(function() { $.cookies.set('check_box', $(this).val()); }); $(“#选择_元素”)。更改(函数(){ $.cookies.set('复选框',$(this.val()); }); 当您加载页面时,请选中“将数据放入”复选框 $(document).ready(function() { if ((check = $.cookies.get('check_box')) != '') { $('#select_element').val(check); } }); $(文档).ready(函数(){ if((check=$.cookies.get('check_框'))!=“”){ $(“#选择_元素”).val(检查); } });
但是我没有测试它。如果您的所有访问者碰巧都使用现代浏览器,那么您可以使用会话存储。是什么原因导致页面在未提交的情况下刷新?这部分可能不在您的控制之下吗?您的服务器端语言是什么?我认为最简单的方法是使用AJAX调用将数据存储在会话中(除非必须,否则不要制作cookie)。这是一种出于美观目的的受控刷新。如果选中复选框,则css类将应用于父级
sessionStorage
如何像javascript对象一样工作,只要窗口保持不变(或直到手动删除数据),它就会在请求之间持续存在。Javascript示例:sessionStorage.varName=3代码>。它至少可以在chrome、firefox和safari中使用。谢谢你的建议。我刚试过你的代码,但似乎不起作用。我不知道我是否做错了?我只是创建了:$('#porchia').change(function(){$.cookies.set('check#box',$(this.val());})$(document).ready(function(){if((check=$.cookies.get('check#box'))!=''{$('porchia').val(check);}});链接到复选框的ID。我选中了复选框,然后按F5刷新页面,复选框消失了。很抱歉,此代码仅适用于选项表单标记,如果要使用复选框,请使用:$(document).ready(function(){if($.cookies.get('check_box')){$('check_box')。attr('checked','true');}else{$('check#box')。removeAttr('checked')}$(“#复选框”)。单击(function(){$.cookies.set('check#box',$(this.attr('checked');});)和html