如何在不使用data-dom-cache的情况下保留jquery移动页面的状态

时间:2014-09-11 08:56:04

标签: jquery-mobile dom caching state retain

有没有办法在页面上保留表单元素的值而不使用页面上的data-dom-cache

例如。我有一个表单,用户将安全数据输入到表单(Page1)并导航到另一个页面(页面2 - 表单继续),然后单击“提交”按钮将请求发送到服务器。

  1. 如果请求失败并且用户导航回第1页,则用户输入的值将保留在页面上。

  2. 如果请求成功并且用户导航回第1页,则用户输入的值不会保留在页面上。

  3. 如果没有在页面上使用'data-dom-cache'属性,有没有办法解决这个问题。

1 个答案:

答案 0 :(得分:1)

您可以使用HTML sessionStorage

编辑:

当您离开page1时,您可以将页面数据保存在sessionStorage中,例如

var keyForStep1 ='step1'   
var objectValue = JSON.stringify({name:"John",lastname:"Doe", other:"other staff"});//NOTE: your form data  
if (typeof (sessionStorage) !== "undefined") {
                if (keyForStep1!== null) {
                    if (sessionStorage.keyForStep1) {
                        try {
                            //sessionStorage.key = objectValue;
                            sessionStorage.setItem(keyForStep1, objectValue);
                        } catch (e) {
                            console.log("LIMIT REACHED: (" + i + ")");
                            console.log(e);
                        }
                    }
                }
            }

如果请求失败,您可以像这样从存储中读取数据(您可以检查keyForStep1是否存在以及是否存在,然后从中读取数据)。

var objData = JSON.parse(sessionStorage.keyForStep1);
console.log(objData.name)//etc..

http://www.w3schools.com/html/html5_webstorage.asp

您可以在此处查看对sessionStorage的浏览器支持:

http://caniuse.com/#feat=namevalue-storage