【问题标题】:How to retain textbox values after navigating to other page?导航到其他页面后如何保留文本框值?
【发布时间】:2013-12-23 13:33:13
【问题描述】:

我有一个页面(比如注册页面),里面有文本框。在其中输入值后,如果我使用浏览器中的后退和前进按钮导航到其他页面并再次返回注册页面。我希望显示输入的文本框值。有没有办法做到这一点。希望有人能帮忙。提前谢谢...

【问题讨论】:

  • Cookie、本地存储或服务器端变量浮现在脑海中,您可以选择一个合适的。
  • 可能您需要为每个控件缓存或会话变量,并从它们中加载值(如果存在)。类似地,在提交表单之前将当前值保存到各自的cache /session variable
  • 如果页面是从缓存加载的(默认情况下),在这些文本框中输入的数据将一直保留,除非源代码强制从服务器重新加载表单页面。所以我认为这根本不是问题。
  • 大家感谢帮助。刚刚使用了这段代码。

标签: javascript php html


【解决方案1】:

保存到本地存储有点危险,因为任何人都可以进入控制台并输入: window.localStorage 以查看域中所有用户的保存值。

例如,现在在 SO 的这个页面上,localstorage 包含这个:

Storage {login-prefs: "{"provider":"google","oauth_version":"","oauth_server":"","username":""}",     se:fkey: "c6f10e10979159fee3220954ec846d68,1387300621", wb:isparticipating: "{"1106914":{"t":1387805621703,"v":false}}"}

假设文本框值不包含个人信息, 您仍然需要解决同一台机器上的多个用户的问题。

一种解决方案是使用用户 ID 作为键,值作为 textboxId 的 json 表示:值

示例:

在 window.befreunload 事件上,将所有文本框值存储在包含用户 ID 的键下:

localStorage.setItem( 'user_123_form-values' , JSON.stringify( [{ txbox1: 'some text' }, { txbox2: 'some other text' }]) );

获取值:

JSON.parse(localStorage['user_123_form-values'])

这里是一个演示本地存储方法的小提琴,但如果数据需要安全, 您将需要使用 cookie:

http://jsfiddle.net/LLyB6/2/

【讨论】:

    【解决方案2】:

    JS 变量从来没有持久化过,但是有两种方法可以解决这个问题:

    1.Cookies 2.存储 除了最古老的浏览器外,所有浏览器都支持 Cookie,但它们可能非常笨重且难以使用。最重要的是,您的浏览器会在每次页面加载时向服务器发送 cookie,因此如果它仅由 JavaScript 使用,那么效率非常低。

    相反,您可能应该查看存储选项。

    保存项目就像localStorage.itemname = value一样简单;阅读就像localStorage.itemname一样简单,删除就像delete localStorage.itemname一样简单

    这些值会在页面加载时保存,但不会发送到服务器。

    来自:

    Javascript global variable does not persist when navigate to another page (which also uses same js file)

    【讨论】:

      【解决方案3】:

      您正在寻找的是使用会话/cookie/附加查询字符串完成的:

      检查这个答案:PHP Pass variable to next page

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-06-07
        • 1970-01-01
        • 1970-01-01
        • 2023-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多