これを手伝ってください。私はユーザーが正常にログインした後、クッキーにユーザー名を保存したい。しかし、ログインボタンがクリックされた後、フォームは未定義であり、それからaddEventListener
プロパティを使用することはできません。その結果、クッキーは作成されません。 Chromeブラウザでif
のエラーが表示されますloginForm
については未定義です(createEventListener()
関数プロトタイプ)。あなたは日付を満了し設定する必要がフォームは送信後に定義されていません(javascript)
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);
}
クライアント側の認証には意味がありません。そして、ページは提出後に存在しなくなります.JSはまったく実行されません –
実際のウェブサイトでは、入力したユーザー名とパスワードが検証のためにWebサーバーに送信されます(私はまだありません:) )。 私は、ユーザーのログイン名を保存するためにログインする必要のあるサイトで、Cookieの一般的な使用に慣れてきています。 – tpham20908