2015-05-24 12 views
6

Próbuję utworzyć plik cookie użytkownika, korzystając z danych wprowadzonych przez użytkownika w formularzu internetowym. Jednak to nie działa i nie wiem dlaczego. Czy wiesz, jaki jest problem?Ustawianie plików cookie przy wprowadzaniu formularza

<form> 
    <input type="text" value="Enter Your Nickname" id="nameBox"> 
    <input type="button" value="Go!" id="submit" onClick="putCookie"> 
<form> 


<script> 
    var today = new Date(); 
    var expiry = new Date(today.getTime() + 30 * 24 * 3600 * 1000); // plus 30 days 

    function setCookie(name, value){ 
     document.cookie=name + "=" + escape(value) + "; path=/; expires=" + expiry.toGMTString(); 
    } 
    //this should set the UserName cookie to the proper value; 
    function storeValues(form){ 
     setCookie("userName", form.submit.value); 
     return true; 
    } 

</script> 
</body> 
+0

W kodzie javascript nie ma funkcji putCookie; wygląda na to, że nazwałeś go setCookie – frenchie

+0

naprawiono, że nadal nie działa – hgund

+1

jest zdefiniowana funkcja 'escape (value)'? co powraca? – lyjackal

Odpowiedz

5

można sprawdzić poniżej kod, to może pomóc.

<html> 
<head> 
    <script> 
var today = new Date(); 
    var expiry = new Date(today.getTime() + 30 * 24 * 3600 * 1000); // plus 30 days 

    function setCookie(name, value) 
    { 
    document.cookie=name + "=" + escape(value) + "; path=/; expires=" + expiry.toGMTString(); 
    } 
function putCookie(form) 
       //this should set the UserName cookie to the proper value; 
    { 
    setCookie("userName", form[0].usrname.value); 

    return true; 
    } 

    </script> 
</head> 
<body> 
<form> 
<input type="text" value="Enter Your Nickname" id="nameBox" name='usrname'> 
<input type="button" value="Go!" id="submit" onclick="putCookie(document.getElementsByTagName('form'));"> 
</form> 
</body> 


</html> 

Podczas zdefiniowana nazwa funkcja powinna być putCookies zamiast storeValues ​​i wywołania funkcji można zrobić w ten sposób: putCookie (document.getElementsByTagName ('form'));

Wewnątrz definicji funkcji można uzyskać wartości cookie z poniższego formularza: setCookie ("userName", form [0] .usrname.value);

elementem Formularz powinien mieć atrybut: name = „usrname”

Będzie to z pewnością zestaw ciasteczek o podanie nazwy użytkownika z elementu formularza.

+0

Czy ten kod jest wszystkim, czego potrzebujesz, aby zobaczyć ciasteczka? – hgund

+0

Właśnie zmodyfikowałem kilka atrybutów elementów html, wszystkie inne są tylko twoim kodem, aby to rozwiązać @ user4485835 –

0

zmienić formę do:

<form onsubmit="storeValues(this)"> 
<input type="text" value="Enter Your Nickname" id="nameBox"> 
<input type="submit" value="Go!" id="submit"> 
<form> 

I storeValues ​​funkcja (formularz) na adres:

{ 
    setCookie("userName", form.nameBox.value); 
    return true; 
} 
+0

A jak je połączyć? – shinzou

Powiązane problemy