하나의 함수를 사용하여 localStorage
에 값을 전송하고 다른 함수를 검색하여 웹 페이지의 해당 입력 필드에 입력합니다.localStorage 값은 항상 Null with Javascript를 사용합니다.
내 문제는 두 가지입니다. retrieve()
함수는 아무 것도 수행하지 않습니다. Null
도 입력 필드에 넣지 않습니다. 둘째, 음, 실제로 입력 값을 저장하려면 onSubmit()
기능을 원합니다.
이들은 두 가지 기능을합니다. 볼 수 있듯이 elements
과 s_elements
을 선언하고이를 검색하려고합니다. 그러나 아무 일도 일어나지 않는다!
<form name="forsendur">
< ... bunch of input and select fields >
<input class="button2" type="submit" value="Calculate" onClick="onSubmit();"/>
</form>
이 retrieve()
호출하는 유일한 버튼입니다 :
<input type="button" class="button2" value="Last session" onClick="retrieve();">
편집 을 _ (검색) 함수는 이제 작동
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");
}
}
이
는 입력 값으로 형태이다 . 나는 많은 오탈자를 고쳤다. 이제는 하나의 문제 만 남아 있습니다.
입력에 대한 html도 볼 수 있습니까? 또는 [jsfiddle] (http://jsfiddle.net) –
자바 스크립트에는 블록 범위가 없습니다. 내부 루프에서'i' 변수를 재사용하고 있습니다. 또한 몇몇 변수를 추가하면'elements [i] .getAttribute ("name")와 같은 긴 속성 접근을 타이핑 할 필요가 없기 때문에 가독성에 많은 도움이됩니다. – Sacho
복사 붙여 넣기시 들여 쓰기 오류, 죄송합니다. 나는 가독성을 위해 코드를 편집 할 것이다. – KSHMR