1

私の問題は、---------私のasp.netマルチユーザーWebアプリケーションのフォームに多くの入力コントロールがあり、ユーザーがコントロールの半分に値を入力して電源をオフにすると、ユーザーはすべてを失いますデータを入力したので、最初からフォームに入力する必要があります。したがって、各コントロールのフォーカスが失われたときに(新しいファイルを再生成して古いファイルを削除するたびに)、javascriptを介してすべてのユーザー入力をxmlファイルに保存し、それをクライアント側のファイルに保存したいと思います.私はクッキーに保存しようとしましたが、xml 文字列のサイズが Cookie のサイズ制限を超えています。また、最後にサーバー側からxmlファイルのデータをデータベースに保存したいです。

私のアプローチに問題はありますか?または私の目的を解決する他の方法はありますか? 任意の提案をいただければ幸いです。

ありがとうございました。

4

1 に答える 1

0

このようにベースとして使用できます。これはjsのみを使用しています。クライアント側のローカル ストレージに xml として保存するよりも、json として保存することをお勧めします。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 に答える