#javascript
#javascript
Вопрос:
Я работаю над HTML-формой, используя Javascript для передачи данных между страницами, и по большей части мне это удается, за исключением флажков. Можно ли убедиться, что флажки остаются установленными при переходе на следующую страницу? или лучше поставить флажки на 2-й странице, где будет представлена фактическая информация? Спасибо!
Комментарии:
1. Сохраните состояние флажка
localStorage
, затем, когда загрузится новая страница, обновите все флажки на основе того, что вы сохранили.2. используете ли вы метод
POST
илиGET
? хм, я думаю, что можно убедиться, что флажки остаются включенными при переходе на следующую страницу, и это лучше. можете ли вы опубликовать некоторый кодhtm
иjavascript
?3. Как вы «используете javascript для передачи данных между страницами»? Где код?
Ответ №1:
Это пример использования sessionStorage
для сохранения состояния флажков. Состояние флажков сохраняется, даже если вы перезагружаете страницу.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script>
function loadOldValues(){
checkboxes = document.querySelectorAll("input[type=checkbox]")
for(var i = 0; i < checkboxes.length; i){
if(sessionStorage.getItem(checkboxes[i].id) == "true"){
checkboxes[i].checked = true
}
}
}
function saveOldValues(){
checkboxes = document.querySelectorAll("input[type=checkbox]")
for(var i = 0; i < checkboxes.length; i){
checkboxes[i].addEventListener("change", function(){
sessionStorage.setItem(this.id, this.checked)
})
}
}
addEventListener("load", loadOldValues)
addEventListener("load", saveOldValues)
</script>
</head>
<body>
<form>
Form:<br>
<label for="checkbox1">Check 1:</label>
<input type="checkbox" id="checkbox1"><br>
<label for="checkbox2">Check 2:</label>
<input type="checkbox" id="checkbox2"><br>
</form>
</body>
</html>
Подробнее о хранении вы можете узнать здесь: http://www.html5rocks.com/en/features/storage