0

我有一个包含 20 多个字段(文本、选择、文本区域和单选)的表单。如何让浏览器记住使用 javascript 提交的值?我知道我可以在 php 中使用$_SESSION. 但我需要用javascript或客户端语言来做。这样,如果用户输入了错误的信息,然后再次返回表单,他们就不需要再次重新输入值。谁能建议如何做到这一点?

4

4 回答 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 回答