Попытка получить данные формы в javascript. Я не уверен, почему это не работает.
<!DOCTYPE html>
<html>
<body>
<form action="site2.html" onsubmit="store()">
Enter your name: <input type="text" name="name" />
Enter your age: <input type="text" name="age" />
<input type="submit" />
</form>
<!-- <div id="result"></div> -->
<script>
function store() {
// Check browser support
if (typeof(Storage) !== "undefined") {
var s = document.getElementById("name").value;
localStorage.setItem("lastname", s);
}
}
</script>
</body>
</html>
1 ответ
Это не сработает в этом фрагменте, потому что localStorage запрещен в изолированной области. Код здесь только для справки. Вы можете увидеть, как он работает в этом jsFiddle. Если вы отправите форму и обновите / повторно запустите страницу, вы увидите, что она также устанавливает входные значения из localStorage. Кроме того, это будет работать с любыми полями формы. Добавьте еще несколько входов, чтобы увидеть, как это работает. (Убедитесь, что вы дали им name
)
Рабочий jsFiddle (при условии, что ваш браузер поддерживает localStorage):
https://jsfiddle.net/jcgodLt6/1/
Фрагмент SO (здесь для справки):
var form = document.getElementById("myform");
form.addEventListener("submit", store, false);
function store(e){
e.preventDefault();//prevent submission
var inputs = form.elements;
for (let i = 0; i < inputs.length; i++) {
localStorage.setItem(inputs[i].name, inputs[i].value);
console.log(inputs[i].name, inputs[i].value);
}
}
function retrieve(){
var inputs = form.elements;
for (let i = 0; i < inputs.length; i++) {
inputs[i].value = localStorage.getItem(inputs[i].name);
console.log(inputs[i].value);
}
}
retrieve();
<form action="site2.html" onsubmit="store()">
Enter your name: <input type="text" name="name" />
Enter your age: <input type="text" name="age" />
Fave thing: <select name="fave"><option>Bees</option><option>Jam</option></select>
<input type="submit" value="submit" />
</form>
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Обратите внимание, что JavaScript — это НЕ Java. Включите все теги, относящиеся к вашему вопросу: например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [стройный] и т. д.
name
в качестве идентификатора.typeof localStorage
, а неStorage
.name
, посколькуname
является глобальным свойством, и вы можете перезаписать его своими собственными переменными.