Javascript Cookie仅提交表单一次

时间:2014-03-15 12:04:49

标签: javascript html cookies

我正在尝试使用JS Cookie在页面加载时自动提交表单,以下是我的代码,但它不起作用。任何帮助都会很明显。谢谢。 我怀疑我的代码与设置和获取cookie有关。

<html>
<head>
<script>
      window.onload = function()
      {
        if(window.location == "hello.html")
        {       
            alert("location match");
            var x = getCookie("crmodtaskform");
            alert("cookie retrieved");
            alert("x:" + x);
            if(x == "")
            {
                setCookie("crmodtaskform",yes);
                alert("cookie set");
                document.checkform.submit();
            }
            else
            {
               alert("cookie is already set and form already submiteed once");
            }
        }
      }

     function setCookie(cname,cvalue)
     {
        document.cookie = cname + "=" + cvalue + ";";
     }

     function getCookie(cname)
     {
        var name = cname + "=";
        var ca = document.cookie.split(';');
        for(var i=0; i<ca.length; i++) 
        {
           var c = ca[i].trim();
           if (c.indexOf(name)==0) return c.substring(name.length,c.length);
        }
        return "";
     }
 </script>
 </head>
 <body>
   <form    name="checkform" method="POST">
    First Name: <input type="text" id="fn"/>
    <input type="submit" value="submit"/>
   </form>
   </body>
   </html>

1 个答案:

答案 0 :(得分:0)

if(window.location == "hello.html")永远不会成真。字符串化location时,它将是完整的 URI,而不仅仅是路径段的最后一个组件。

与整个URI比较,或使用indexOf()match()