提交后,表格不确定(JavaScript)



请在这件事上给予我帮助。用户成功登录后,我想将用户名存储在cookie中。但是,在单击登录按钮后,该表单是未定义的,我无法从中使用addEventListener属性。结果,没有创建cookie。Chrome浏览器在if条件下关于loginForm的错误是未定义的(在createEventListener()功能原型中)。

index.htm

<form action="results.htm">
    <fieldset id="deliveryinfo">
        <legend>Site Login</legend>
        <label for="usernameinput">Username</label>
        <input type="text" id="usernameinput" name="username" />
        <label for="passwordinput">Password</label>
        <input type="password" id="passwordinput" name="password" />
    </fieldset>
    <fieldset id="submitbutton">
        <input type="submit" id="submitBtn" value="Login" />
    </fieldset>
</form>

scripts.js

"use strict";
function processCookie() {
    document.cookie = "username=" +document.getElementById('usernameinput').value;
}
function populateInfo() {
    if (document.cookie) {
        var uname = document.cookie;
        uname = uname.substring(uname.lastIndexOf("=") + 1);
        document.getElementById('usernameinput').value = uname;
    }
}
function handleSubmit(evt) {
    if (evt.preventDefault) {
        evt.preventDefault();
    }
    else {
        evt.returnValue = false;
    }
    processCookie();
    document.getElementsByTagName('form')[0].submit();
}
function createEventListener() {
    var loginForm = document.getElementsByTagName('form')[0];
    if (loginForm.addEventListener) {
        loginForm.addEventListener("submit", handleSubmit, false);
    }
    else if (loginForm.attachEvent) {
        loginForm.attachEvent("onsubmit", handleSubmit);
    }
}
function setUpPage() {
    populateInfo();
    createEventListener();
}
if (window.addEventListener) {
    window.addEventListener("load", setUpPage, false);
}
else if (window.attachEvent) {
    window.attachEvent("onload", setUpPage);
}

您需要设置到期日期。如果您不设置有效期,则cookie是会话的&amp;当您离开页面(提交)时,它将被销毁。添加"路径=/"还使Cookie在所有站点页面上都可提供。

function processCookie() {
    //cookie lifetime in milliseconds (24 hours)
    var date = new Date(new Date().getTime() + 24 * 3600 * 1000); 
    document.cookie = "username=" +document.getElementById('usernameinput').value+"; path=/; expires=" + date.toUTCString();
}

相关内容

最新更新