【问题标题】:Maintain Form Element State on Refresh刷新时保持表单元素状态
【发布时间】:2011-06-06 22:34:30
【问题描述】:

这个问题可能已经有了一些答案....或者在同一行。

我有一个 html 表单复选框元素,默认情况下未选中并加载页面。

单击时,我使用 Jquery 将其属性更改为选中或未选中,以便其他函数也可以运行。

问题是我如何保持这种状态,在浏览器刷新时选中或取消选中。我希望它保留之前或最后选择的价值。尽量避免使用 cookie。

【问题讨论】:

  • 你的服务器端语言是什么?
  • 当您说“浏览器已刷新”时,您的意思是该页面已通过重新加载按钮(或菜单选项或其他)重新加载?
  • @rahul PHP 是我的服务器端语言
  • @Pointy 页面已通过重新加载按钮重新加载。
  • 你为什么要避免使用 cookie?

标签: javascript jquery html session cookies


【解决方案1】:

您应该将值存储在 cookie 中。
This plugin 会自动完成所有操作。

如果您不想使用 cookie,可以使用 HTML5 本地存储。

【讨论】:

  • 除了会话值,cookie.... 你有一个包含数百个字段的表单并且你的浏览器被刷新,通常这种状态是保持会话而不是 cookie。 jQuery 可以检测到重新加载然后抓取状态并传递给 dom 吗?
  • 没有。 jQuery 是纯粹的客户端,不知道服务器端会话。您可以在服务器上执行此操作。 (并使用 AJAX 自动保存值)
  • 接受的答案得出结论,在刷新时维护客户端值有很多选项:cookie、会话值、html5 本地存储,所有这些都应该通过 ajax 调用进行更改。谢谢大家
  • @Codex:会话也使用 cookie。
【解决方案2】:

如果您不想使用 cookie(公平 imo),通过 ajax 自动保存更改是您最好的选择。它保持与该用户/会话/实例/数据库记录相关的复选框的状态。虽然 cookie 只是漂浮在以太中(与会话/实例/数据库记录/系统用户无关(仅与浏览器用户有关))

【讨论】:

  • 你能不能稍微扩展一下。
  • 类似 $(":checkbox").onchange($.ajax('checkbox/save/', $(this).val(), function(){});
  • 试图理解它。你建议每个会话都在数据库中记录所有用户选择状态?据我所知,有三种方式:cookie、会话、db(除非使用新的 html5 标记之一)。
【解决方案3】:

这是一个用于表单状态的 HTML 5 存储 jQuery 插件 -> http://www.jasonsebring.com/dumbFormState

【讨论】:

    猜你喜欢
    • 2020-12-20
    • 1970-01-01
    • 2012-11-08
    • 1970-01-01
    • 2020-03-13
    • 2021-03-23
    • 2019-05-19
    • 1970-01-01
    • 2020-06-09
    相关资源
    最近更新 更多