2017-08-25 9 views
0

ユーザーが選択した値を更新したが、それ(のlocalStorage)値は、ページの更新に変化している(F5)のlocalStorage値がボタンの値に設定されている選択ボックスから

function change(){ 
 
     var opt = $("#gsb_tb option:selected").text(); 
 
     var stored = localStorage.setItem('project',JSON.stringify(opt)); 
 
     var valueofstore= JSON.parse(localStorage.getItem('project')); 
 
     document.getElementById("set-project").value= valueofstore; 
 
    }
<select id="gsb_tb" style="height: 45px; width: 78%; margin-left: 70px; padding-right: 90px; vertical-align: middle;" tabindex="0" autocomplete="off"> 
 
<option value="" disabled selected>Select your Project</option> 
 
<option value="370"> E-Card</option> 
 
<option value="278">Labs</option> 
 
<option value="196">Absolute DB</option> 
 

 
<input value="Set as Working Project" onclick="change()" aria-label="I'm Feeling Lucky" name="btnI" class='center-btn' jsaction="sf.lck" type="submit" id='set-project'>

+1

あなたは(localStorage.setItem 'の後に') '欠けているように見えます –

+0

'JSON.stringify(opt)') ')'が欠けている場合は、構文エラーerrrorがあります – Livingstone

+0

( 'opt')、 'JSON.stringify(opt)そうです!それは仕事ですしかし、ここではページ更新時にリセットされるようになりました –

答えて

1

私が理解できるものから、あなたはこのようなwindow.onload

function change(){ 
    var opt = $("#gsb_tb option:selected").text(); 
    var stored = localStorage.setItem('project',JSON.stringify(opt)); 
    var valueofstore= JSON.parse(localStorage.getItem('project')); 
    console.log(valueofstore) 
    document.getElementById("set-project").value= valueofstore; 
} 
function load(){ 
    var valueofstore= JSON.parse(localStorage.getItem('project')); 
    console.log(valueofstore) 
    if (valueofstore){ 
     document.getElementById("set-project").value= valueofstore; 
    } 
} 
window.onload = load; 
1

ますあなたのページを正しく更新したときに、選択して保存した値がlocalStorageに反映されていないことを意味しますか?

これが正しい場合、localStorageへの保存には何も問題はありませんが、値を選択して>オプション値に戻す必要があります。

+0

私はあなたを得ませんでした –

0

何かを探しているのでしょうか?

あなたは、ページの読み込みにローカルストレージからデータをロードする必要が

<select id="gsb_tb" style="height: 45px; width: 78%; margin-left: 70px; padding-right: 90px; vertical-align: middle;" tabindex="0" autocomplete="off"> 
<option value="" disabled selected>Select your Project</option> 
<option value="370"> E-Card</option> 
<option value="278">Labs</option> 
<option value="196">Absolute DB</option> 
</select> 

<button value="s" type="button" id='set-project'>Change</button> 

JS

$(document).ready(function(){ 
    var project = localStorage.getItem('project'); 
    if(undefined !== project && project != "") 
    { 
    document.getElementById("set-project").innerHTML = project; 
    } 

    $("#set-project").on("click", update); 

}) 

function update(){ 
    var opt = $("#gsb_tb option:selected").text(); 
    var stored = localStorage.setItem('project',opt); 
    var valueofstore= localStorage.getItem('project'); 
    document.getElementById("set-project").value= valueofstore; 
    document.getElementById("set-project").innerHTML= valueofstore; 
} 

JSFiddle

+0

Nopeページの更新時にのみ値が更新されます –

+0

ユーザーのクリックでボタンのテキストを変更しますか?更新された答えを見る – Livingstone

関連する問題