내 목표는 하나의 함수로 특정 형식의 양식을 통해 제출 된 데이터를 저장하고 다른 함수로 데이터를 검색하는 것입니다. 양식에 여러 개의 입력 태그와 두 개의 선택 태그가 있습니다.자바 스크립트를 통해 localStorage에 값 저장
function storage() {
if (typeof(Storage) != "undefined") {
var elements = document.getElementsByTagName('input');
for (var input in elements) {
input.value = localStorage.getItem(input.name);
}
var elements = document.getElementsByTagName('select')
for (var select in elements) {
select.value = localStorage[select.name];
}
}
alert("Success?");
}
function onSubmit() {
inputs = document.forms["forsendur"].getElementsByTagName("input");
selects = document.forms["forsendur"].getElementsByTagName("select");
for (var i=0; i<inputs.length; i++) {
localStorage.setItem(inputs[i].name, inputs[i].value);
}
alert("Success?");
}
이 스토리지() 함수를 호출하는 별도 입력 된 태그이다 :
<form action="cool_url" name="forsendur" method="post">
<lots of input and select tags>
<input class="button2" type="submit" value="Reikna" onClick="onSubmit();"/>
</form>
:
<input type="button" class="button2" value="Last session" onClick="storage();">
이가 (일부 생략) 형태를 이렇게 JS 코드 그러나 아무 것도 일어나지 않습니다. 데이터가 양식을 통해 올바르게 전송되고 있음을 확인할 수 있습니다. 나는 두 개의 alert()
호출을 포함 시켰는데, 이는 호출되어 함수가 호출되어 실행됩니다.
코드 실제로 모두 실행하고 입력이 개최 값하는 경우, 확인 (예를 들어, 크롬 개발 도구에서) 디버거를 사용합니다. 또한 "자원"탭에서 localStorage를 검사하여 값이 존재하는지 확인할 수 있습니다. – Christoph
답장을 보내 주셔서 감사합니다. 값이 없습니다. 입력 된 값은 정상입니다. – KSHMR
똑같은 코드를 사용하면 localStorage에 저장되는 것을 볼 수 있습니다. 그러나 예제 입력 요소에 이름이 없으므로 키가 비어 있으므로 반환 값을 검색 할 수 없습니다. 또한, 또 다른 문제는 html 콜렉션의'for for' 루프에'onSubmit()'과 같이'for' 루프를 대신 사용하는 것입니다. – Christoph