如何记住上次提交的表单值,javascript

时间:2013-02-27 04:15:43

标签: javascript client-side

我有一个包含20多个字段的表单(text,select,textarea和radio)。如何让浏览器使用javascript记住提交的值?我知道我可以使用$_SESSION在php中完成。但我需要用javascript或客户端语言来做。因此,如果用户输入错误信息并再次返回到表单,则无需再次重新输入值。谁能建议如何做到这一点?

4 个答案:

答案 0 :(得分:2)

你可以使用cookies! https://developer.mozilla.org/en-US/docs/DOM/document.cookie

Ñamñam:)

答案 1 :(得分:0)

我会看一下使用HTML5本地存储http://diveintohtml5.info/storage.html。你无法用javascript实现你所要求的,因为当你在提交表单后访问新页面时,所有本地javascript数据都消失了。您必须以某种方式存储它,使用PHP,本地存储或Cookie。

答案 2 :(得分: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>

答案 3 :(得分: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')
     });