为什么这个文本输入不缓存?

时间:2011-09-22 13:52:52

标签: php jquery caching

我有两个网页,它们在代码方面基本相同,但其中一个似乎没有缓存信息。 通过'cache',我的意思是在客户端/浏览器端。文本字段不保留先前输入的信息。在下面的第一个示例中,如果您注册然后登录,则下次登录时,您的用户名将被缓存在要选择的浏览器中;而在第二个例子中,它不保留该信息。

http://www.dixieandtheninjas.net/hunter/有一个登录提示。一旦您从浏览器登录,当您重新访问该页面时,它已缓存您的用户名。

http://www.dixieandtheninjas.net/dynasties/也有登录提示,但它不会缓存!我无法弄清楚原因。

也许是因为第二个不在FORM标签内?也许还有一些其他的小编码错误导致了这个错误。

以下是第一个示例中的代码:

<form method = "post"
  action = "">

Username: <input type="text" name="login_name" value="" />
<br><br>
Password: <input type="password" name="password" value="" />
<br><br>
<input type="submit" value="Login" />
</form>

以下是第二个示例中的代码:请注意,在第二个示例中,点击是由jquery处理的,而第一个是使用纯HTML和PHP

<p>
Email address: <input type="text" id="logininfo" value="" />
<br>
Password: <input type="password" id="password" value="" />
<br>

<input type="button" id="loginbutton" value="Login" />
</p>

这是第二个例子中使用的jquery:

    <script type ="text/javascript">
        $(function(){


        $('#loginbutton').click(function(){
            var loginvar = $('#logininfo').val();
            var passvar = $('#password').val();



            //alert(loginvar + ", " + passvar);

            if (loginvar != '' && passvar != '') {

                var subdata = {
                   logindata : loginvar,
                   passdata : passvar
               };


           $.ajax({
            url: "index_backend.php",
            type: 'POST',
            data: subdata,

                success: function(result) {
                    //alert(result);
                    if (result == '1') {
                        // success
                        window.location.replace("http://www.dixieandtheninjas.net/dynasties/playermenu.php")
                    } else if (result == '2') {
                        //$('#logininfo').empty();
                        $('#logininfo').attr('value', '')
                        $('#password').attr('value', '')
                        alert("Login failed.  Please try again, or register if you have not already created an account.");
                    } else {
                        alert("Something has gone wrong!");
                        alert (result);
                    }
                } // end success
           });  // end ajax

            } else {
                alert ("Please enter a username and password.");
            }

        });   /// end click function for button



        });   //// end

        </script>

1 个答案:

答案 0 :(得分:0)

由于您并未真正在jQuery中提交表单,因此浏览器不知道用户已尝试将其用作输入而只是输入内容然后转到另一页。因此,您不会在存储的表单数据中看到它。