Попытка получить данные формы в 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. Кроме того, это будет работать с любыми полями, существующими в форме. Добавьте еще несколько входов, чтобы увидеть, как это работает. (Убедитесь, что вы дали им имя
)
Работающий jsFiddle (при условии, что ваш браузер поддерживает localStorage):
SO Snippet (здесь для справки):
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). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.