2016-03-05 3 views
0

У меня ужасное время, пытаясь понять, как cookie работает в JavaScript.JavaScript Cookie Assist

Вот что я пытаюсь сделать: Выпишите Cookie под названием «Библиотека» и установить дату истечения срока действия в течение 21 дней и использовать предупреждение, чтобы пользователь мог знать куки был создан

перенаправлять пользователя на другую страницу «blah.html», если ошибки не возникли (имя пользователя или пароль оставлены пустыми на форме) и опубликуйте сообщение о действии «Добро пожаловать» + имя пользователя «!» ;. При возникновении ошибки перенаправляйте blah2.html и предупреждайте пользователя об ошибке. Будем очень благодарны любой помощи! Заранее спасибо!

мой печенье код:

function writeCookie() { 
    if (document.myForm.username.value == "") { 
    alert("You did not enter a user name!"); 
    window.location.href. = "home.html"; 
    } else if (document.myForm.pwd.value == "") { 
    alert("You did not enter a password!"); 
    window.location.href = "home.html"; 
    } else 
    cookieValue = escape(document.myForm.username.value) + ";"; 
    document.cookie = "name=" + cookieValue; 
    alert("Setting Cookies: " + "name=" + cookieValue); 
    window.location.href = "private.html"; 

} 

function getCookie() { 
    var userWelcome = document.cookie; 
} 

мой HTML-код:

<p> Welcome to the Login Screen. To continue, please enter your username and password</p> 

<form name="myForm"> 
    <fieldset> 
    <legend><b>User Information</b></legend><br> 
    <label for="username">User Name:</label> 
    <input name="username" size="20" maxlength="20" type="text">&nbsp;&nbsp; 
    <label for="pwd">Password:</label> 
    <input name="pwd" size="25" maxlength="25" type="password"> 
    <br> 
    <br> 
    <center> 
     <input type="Submit" value="Login" id="login" onclick="createCookie 
    ();">&nbsp;&nbsp;<input value="Reset" type="reset"></center> 
    </fieldset> 
</form> 
+2

https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie/Simple_document.cookie_framework – epascarello

+0

У вас есть синтаксические ошибки здесь : 'window.location.href. = "home.html"; '' '' после 'href' является ошибкой. – Barmar

+0

В вашем вопросе говорится, что вы хотите создать файл cookie с именем 'Location', но ваш код создает файл cookie с именем' name'. Кроме того, имя функции - 'writeCookie()', но HTML вызывает 'createCookie()'. – Barmar

ответ

0

Так я переехал некоторые вещи вокруг и очищены ошибки.

произошла ошибка в этой строке: window.location.href. должно быть: window.location.href

<script> 
function writeCookie(){ 
try{ 
if(document.myForm.username.value == ""){ 
    alert("You did not enter a user name!"); 
    return false; 
    } else if(document.myForm.pwd.value == ""){ 
    alert("You did not enter a password!"); 
    return false; 
    } else { 
    cookieValue = escape(document.myForm.username.value) +";"; 
    document.cookie = "name=" + cookieValue; 
    alert("Setting Cookies: " + "name=" + cookieValue);  
    window.location.href = "private.html"; 
    } 
} catch(e){alert(e); return false;} 
} 

function getCookie(){ 
var userWelcome = document.cookie; 
} 
</script> 

<p> Welcome to the Login Screen. To continue, please enter your username and password</p> 

<form name="myForm" onsubmit="return writeCookie()" action="post"> 

<fieldset> 
<legend><b>User Information</b></legend><br> 
<label for="username">User Name:</label> 
<input name="username" size="20" maxlength="20" type="text">&nbsp;&nbsp; 
<label for="pwd">Password:</label> 
<input name="pwd" size="25" maxlength="25" type="password"> 
<br> 
<br> 

   

Я сделал это использовать onsubmit действие формы, и он вернется false, если пользователь не вводит имя пользователя и пароль вместо перенаправления. (Я предполагаю, что вы перенаправляете его на ту же страницу). В настоящее время ваш код также устанавливает значение cookie после удаления ошибки.

JSFiddle Чтобы показать его работоспособность.

Чтобы получить печенье просто сделать

var cookie = document.cookie; 

    var name = cookie.split('=')[1]; 
+0

Я ценю помощь, теперь, как бы я хотел получить cookie для отображения имени пользователя на другой странице, например (Hello, User!) – crizil

+0

, если он находится в том же домене, вы должны быть в состоянии сделать var cookie = document .cookie; var name = cookie.split ('=') [1] – kemiller2002