重新加载页面我丢失了表单中的所有值

时间:2014-04-27 19:11:49

标签: javascript php html forms drop-down-menu

我制作了一个网页表单,其中包含一些手动输入的字段,其他字段为下拉列表,以及一些javascript中的日历字段。我最新添加的下拉列表是从上一个下拉列表的选定值填充的。当它重新加载表单时,我丢失了以前输入的所有值,只保留了一个下拉列表中的值。我是否必须捕获所有值,或者是否可以在不重新加载表单的情况下填充第二个下拉列表?

4 个答案:

答案 0 :(得分:1)

-.-一个字。 AJAX。用它。

每次重新加载表单时,都会丢失所有未记录的数据。

如果必须重新加载页面,请将所有数据保存在cookie或其他内容中。

答案 1 :(得分:1)

有一种方法可以在没有ajax的情况下保存数据,也可以不向服务器发送任何内容。它叫做sessionStorage。

// store item
localStorage.setItem("index", "value");

// retrieve item
var data = localStorage.getItem("index");

所以你必须在任何动作之后用sessionStorage保存数据(点击按钮,keydown,mouseleave ......),当你重新加载页面时,你只需要从你在会话中存储的数据再次填充它!

答案 2 :(得分:0)

我假设通过重新加载表单,您的意思是提交表单,然后返回页面版本,并根据提交的第一个下拉列表填充第二个下拉列表。如果是这种情况,您可以考虑隐藏第二个下拉列表的所有可能值,然后在第一个下拉列表中进行选择后使用JavaScript填充它。如果可能值的数量非常大或必须在服务器端计算(例如,您最初无法知道所有值),那么您可以使用AJAX提交表单并避免重新加载整个页面。

答案 3 :(得分:0)

检查您的信息页cache-control。该属性告诉浏览器依赖自己的缓存来重新加载页面。

可以将其设置为元标记。例如:

<meta http-equiv="Cache-control" content="public">

但更好的方法(在我看来)是通过服务器端,使用header() function

请注意,有些人希望在表单方面将其设置为no-cache,以避免垃圾邮件以及出于安全原因。