2016-10-30 32 views
0

大家好日子!sessionStorage JavaScript,加載getItem?

我有以下三個會話存儲功能,我需要一些幫助加載部分。保存功能工作得很好,但是當我加載函數loadform()時,我無法將信息返回到表單中。我究竟做錯了什麼?

function book() { 
    document.getElementById('ticketform').addEventListener('input', saveform, false); 
    document.getElementById('ticketform').addEventListener('load', loadform, false); 
} 

function loadform() { 
    var storedFnamn = sessionStorage.getItem('text1'); 
    var storedEnamn = sessionStorage.getItem('text2'); 
    var storedPnr = sessionStoage.getItem('text3'); 

    if (storedFnamn) { 
     document.getElementById('firstname').value = storedFnamn; 
    } 
    if (storedEnamn) { 
     document.getElementById('lastname').value = storedEnamn; 
    } 
    if (storedPnr) { 
     document.getElementById('idnr').value = storedPnr; 
    } 
} 

function saveform() { 
    var fnamn = document.getElementById('firstname').value; 
    var enamn = document.getElementById('lastname').value; 
    var pnr = document.getElementById('idnr').value; 

    window.sessionStorage.setItem('text1', fnamn); 
    window.sessionStorage.setItem('text2', enamn); 
    window.sessionStorage.setItem('text3', pnr); 
} 
+0

如果你手動調用'loadform'是否自己工作?你什麼時候期待_load_事件觸發? –

+0

我希望加載頁面時觸發加載事件。我試圖讓它自己工作,但它並沒有,我不知道我做錯了什麼。我之前做過這個,但是用和onclick,現在試圖用addEventListener來做到這一點,並認爲這是問題,但也許還有其他的東西....:/ – Isla

+0

'loadform'看起來沒問題。什麼時候調用'book'?看起來這個問題可能與這個/ load事件有關 - 當你可以'document.getElementById('ticketform')''

'的加載事件已經被觸發;把負載處理程序直接放在窗口/文檔加載上 –

回答

0

在第9行,在storedPnr你拼錯sessionStorage,你寫sessionStoage

+0

謝謝!現在一切正常! :) – Isla

0

您可能不會在表單元素上獲得load事件。我想你想要的是替換符合:

document.addEventListener('DOMContentLoaded', loadform, false); 

這樣,當頁面的DOM加載完畢後會調用loadform方法,並從會話存儲中的值拉。