2014-11-02 3 views
0

Я работаю над назначением здесь, где пользователь вводит свое имя в текстовое поле и выбирает изображение с помощью переключателя, проверяя и сохраняя значения в файле cookie.проблема получения значений cookie

Несмотря на то, что он выполнен не отлично, я вижу, что cookie хранится правильно, только путем печати document.cookie. Теперь я хочу показать только значение, а не имя файла cookie. Как и сейчас, для меня ничего не отображается. Я подозреваю, что проблема заключается в моей функции GetCookie или ее вызове.

Любые указатели будут оценены!

// Functions 
$("#BtnSubmit").click(function() { 
    ClearErrors(); 
    Validate(); 
}); 

$("#BtnShow").click(function() { 
    GetCookie(document.cookie); 

}); 

$("#BtnDestroy").click(function() { 
    DestroyCookie(); 
}); 

function Validate() { 
    var name = $("#TBName").val(); 
    var pic = $("input:radio[name='RGPic']:checked").val(); 
    var isValid = true; 
    // validate name field 
    var nameReg = /^[A-Za-z ]{3,20}$/; 
    if (!nameReg.test(name) || name.length == 0) { 
     $("#DivNameError").html("C'mon, \"" + name + "\" is not a valid name."); 
     isValid = false; 
    } 
    if (name.length == 0) { 
     $("#DivNameError").html("No name was entered!"); 
     isValid = false; 
    } 

    // Validate picture selected 
    if (pic == undefined) { 
     $("#DivPicError").html("Select a picture"); 
     isValid = false; 
    } 
    if (isValid == true) { 
     SetCookie(name, pic); 
    } 
} 

// function to clear error messages upon attempted submittal 
function ClearErrors() { 
    $("#DivNameError").html(""); 
    $("#DivPicError").html(""); 
} 

// Cookie Functions 
function SetCookie(nValue, picture) { 
    document.cookie = "name=" + nValue + "; expires=Wed, 01 Jan 2020 00:00:00 GMT; path=/"; 
    document.cookie = "securitypicture=" + picture + "; expires=Wed, 01 Jan 2020 00:00:00 GMT; path=/"; 
    $("#DivMessage").show().html("Cookie has been added.").fadeOut(1600); 
    window.location.href = "results.html"; 
} 

function GetCookie(list) { 
    var cookieArr = new array(); 
    cookieArr = list.split(";"); 
    for (var i = 0; i < cookieArr.length; i++) { 
     var val = cookieArr[i].split("="); 
    } 
    $("#DivCookieContents").html("name value: " + val[0] + "picture file: " + val[1]); 
} 

function DestroyCookie() { 
    var name = ""; 
    var pic = ""; 
    SetCookie(name, pic); 
} 
+0

'GetCookie' отображает только последнее печенье. Вы должны добавить свой HTML-код в цикл. – Barmar

ответ

0

Ваша DestroyCookie функция должна иметь name в качестве параметра и установить дату истечения на пройденный день.

function DestroyCookie(name) { 
    document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'; 
} 

Также в GetCookie:

function GetCookie(list) { 
    var cookieArr = new array(); 
    cookieArr = list.split(";"); 
    var cookieStr = "" 
    for (var i = 0; i < cookieArr.length; i++) { 
     val = cookieArr[i].split("="); 
     cookieStr += "name value: " + val[0] + "picture file: " + val[1] + "<br/>" 
    } 
    $("#DivCookieContents").html(cookieStr); 
} 
Смежные вопросы