我有一个包含 20 多个字段(文本、选择、文本区域和单选)的表单。如何让浏览器记住使用 javascript 提交的值?我知道我可以在 php 中使用$_SESSION
. 但我需要用javascript或客户端语言来做。这样,如果用户输入了错误的信息,然后再次返回表单,他们就不需要再次重新输入值。谁能建议如何做到这一点?
问问题
3775 次
4 回答
2
你可以用饼干!https://developer.mozilla.org/en-US/docs/DOM/document.cookie
Ñam ñam :)
于 2013-02-27T04:17:25.973 回答
0
我会看看使用 HTML5 本地存储http://diveintohtml5.info/storage.html。仅使用 javascript 无法实现您的要求,因为当您在提交表单后访问新页面时,所有本地 javascript 数据都消失了。您必须以某种方式存储它,使用 PHP、本地存储或 Cookie。
于 2013-02-27T04:19:36.123 回答
0
根据您需要支持的浏览器,有两个用于在 HTML5 中本地存储数据的新对象。
https://developer.mozilla.org/en-US/docs/DOM/Storage
看起来支持可以追溯到 IE8。
我创建了这个简单的测试。似乎工作正常。
<!doctype html>
<html>
<head>
<script>
function dotest(){
var input = document.getElementById('test');
if( localStorage.test ){
input.value = localStorage.test;
}
input.addEventListener('blur', function(){
localStorage.test = input.value;
}, false);
}
</script>
</head>
<body onload="dotest()">
<input type="text" id="test">
</body>
于 2013-02-27T04:20:16.970 回答
0
可以将其存储在 app.locals 或 res.locals 中。如果您需要在更长的时间内持久化数据 mongoDB
这是我如何使用本地变量的示例,因此我可以存储一个值,同时我从不同的视图中获取另一个值,然后将它们都放入数据库中。
//route to receive the driver name
app.post('/newdriver', function(req, res){
app.locals.myVar1 = req.body.newDriver;
console.log(app.locals.myVar1);
res.redirect('/newdriverlist')
});
于 2013-02-27T04:22:55.363 回答