2017-04-24 7 views
1

名前、画像、説明の3つの入力を受け取るブートストラップモードがあります。私はすべてをローカルストレージに保存し、フォーム入力をWebページにロードする方法を考え出しましたが、テキスト要素が最新の状態で消えてしまいましたので、これに関するヒントを得ることができれば幸いです。localStorageから読み込まれたテキストが更新されません。

apply.onclick = function() {      //function executed when form submitted 
    var name = document.getElementById("name2").value;  //save name to a var 
    var description = document.getElementById("description2").value; 
    localStorage.setItem("name", name);     //set name to localStorage 
    localStorage.setItem("description", description); 

    updateProduct(); //function to load into divs from local storage 
} 

function updateProduct(){ 
    $("#title2").html(localStorage.name); 
    $("#desc2").html(localStorage.description); //load name&desciption into divs 
} 

これが成功し、それぞれのdiv要素に名前と説明を設定しますが、ページが更新されたら、テキストが消去され、クリックされた「適用」する前に、それが何であれにリセットされます。私が使用しなければならないローカルストレージからローディング&をロードするための別の方法はありますか?

+0

私たちにフルコードを教えてください...おそらくフラグを設定することでトリックを行うことができます。私はあなたのコードの別の部分でlocalStorageに値を割り当てていると思います.... – Hackerman

答えて

1

ページが読み込まれるときにupdateProduct関数を呼び出す必要があります。現在、あなたはここに示したものからonclickハンドラで呼び出すだけです。

することはでき、次の技術適用することにより、この:あなたはあなたの定義initApplication機能である必要があり、アプリケーションの初期化中に適用することにしたい

document.onreadystatechange = function() { 
    if (document.readyState == "interactive") { 
     initApplication(); 
    } 
} 

何かを。

このhereについては、MDNで読むことができます。

+0

どうすればいいと思いますか?この?私はJQueryのdocument.ready関数と$(window).on( 'load'、function(){}を使ってみましたが、これらの両方がページの他の入力に反応しませんでした(ボタンは機能しません) –

+0

クリックが発生していない場合はデータがありません – charlietfl

+0

@charlietfl localStorageに何も保存されていない場合に適用されるデフォルト設定があると思います –

関連する問題