1

我的问题是---------我的表单上有很多输入控件,在我的 asp.net 多用户 Web 应用程序中,当用户在一半的控件中输入值并且电源关闭时,用户失去了所有输入数据,他必须从头开始填写表格。所以我想通过 javascript 将所有用户输入存储在 xml 文件中,因为每个控件失去焦点(每次重新生成新文件并删除旧文件)并将其存储在客户端的文件中。我已经尝试将它存储在 cookie 中,但 xml 字符串大小超过 cookie 大小限制。我还想最后从服务器端将 xml 文件数据存储到数据库中。

那么我的方法有什么问题吗?或任何其他方式来解决我的目的?任何建议将不胜感激。

谢谢你。

4

1 回答 1

0

您可以使用这种方式作为基础。这仅使用js。在客户端本地存储上保存为 json 比保存为 xml 更好。没有 JQuery:

<form>
    <input id="txt1" onchange="saveDraft()" type="text" />
    <input id="txt2" onchange="saveDraft()" type="text" />
    <input id="txt3" onchange="saveDraft()" type="text" />
    <input id="btnSubmit" type="submit" value="submit" />
</form>

<script type="text/javascript">
var elements = ["txt1","txt2","txt3"];

function saveDraft(){
    var values= new Object;
    for(var i=0;i<elements.length;i++){
        values[elements[i]] = document.getElementById(elements[i]).value;
    }
    localStorage["draft"] = JSON.stringify(values);
}

window.onload = function (){
    restoreDraft();
}

function restoreDraft(){
    var values;
    if(localStorage["draft"] ){
        values = JSON.parse(localStorage["draft"]);
    }
    else
        return;
    if(confirm('Do you want to restore saved draft?')){
        for(var i=0;i<elements.length;i++){
            document.getElementById(elements[i]).value = values[elements[i]];
        }
        localStorage["draft"] ='';
    }           
}
</script>
于 2012-11-28T14:25:43.970 回答