我使用一個函數將值提交到localStorage
,另一個函數檢索它們並將它們放到網頁上它們各自的輸入字段中。localStorage值始終爲空使用Javascript
我的問題是雙重的。 retrieve()
函數似乎沒有做任何事情;輸入字段中不包含Null
。其次,我想要onSubmit()
函數實際存儲輸入值。
這些是兩個功能。正如你所看到的,我聲明瞭elements
和s_elements
,並且我試圖檢索它們。但沒有任何反應!
function retrieve() {
if (typeof(Storage) != "undefined") {
var elements = document.getElementsByTagName('input');
var s_elements = document.getElementsByTagName('select');
for (var i=0; i<elements.length; i++) {
if (elements[i].getAttribute("type") != "submit" && elements[i].getAttribute("type") != "button") {
e = elements[i];
e.setAttribute("value", localStorage[e.getAttribute("name")]);
}
}
for (var i=0; i<s_elements.length; i++) {
s_e = s_elements[i];
s_e.setAttribute("value", localStorage[s_e.getAttribute("name")]);
}
}
}
function onSubmit() {
var elements = document.forms["forsendur"].getElementsByTagName("input");
var s_elements = document.forms["forsendur"].getElementsByTagName("select");
for (var i=0; i<elements.length; i++) {
if (elements[i].getAttribute("type") != "submit") {
e = elements[i];
localStorage[e.getAttribute("name")] = e.getAttribute("value");
}
}
for (var i=0; i<s_elements.length; i++) {
s_e = elements[i];
localStorage[s_e.getAttribute("name")] = s_e.getAttribute("value");
}
}
這是與輸入值的形式:)
<input type="button" class="button2" value="Last session" onClick="retrieve();">
編輯_檢索(功能現在工作:
<form name="forsendur">
< ... bunch of input and select fields >
<input class="button2" type="submit" value="Calculate" onClick="onSubmit();"/>
</form>
這是唯一的按鈕調用retrieve()
。我修復了很多錯別字。現在只剩下一個問題了。
我們可以看到輸入的html嗎?或[jsfiddle](http://jsfiddle.net) –
Javascript沒有塊範圍。你正在重複使用內循環中的'i'變量。此外,添加一些變量,因此您不必輸入像元素[i] .getAttribute(「name」)這樣的長訪問屬性,可以提高可讀性。 – Sacho
複製粘貼時的縮進錯誤,抱歉。我將編輯可讀性的代碼。 – KSHMR