2013-04-10 3 views
0

Я пытаюсь сохранить cookies в JavaScript, а затем отобразить их на странице еще раз, но по какой-то причине моя функция setCookies и функция displayCookies работают неправильно. Я хочу, чтобы он также истекал через 1 неделю , Он поступает из формы, и когда я помещал его в Web Developer в FireFox, он говорит, что Reference Error setCookies и displayCookies не определены. Мой jsfiddle является: http://jsfiddle.net/FmXJW/Попытка создания файлов cookie в JavaScript

function setCookies() 
    { 
     // this function will set cookies for each field in the reservation form, and set them to expire after one day 
     var Name = document.forms[0].txtName.value; 
     var Address = document.forms[0].txtAddress.value; 
     var City = document.forms[0].txtCity.value; 
     var State = document.forms[0].txtState.value; 
     var Zip = document.forms[0].txtZip.value; 
     var Email = document.forms[0].txtEmail.value; 
     var CarType = document.forms[0].txtCarType.value; 
     var PickupDate = document.forms[0].txtPickupDate.value; 
     var ReturnDate = document.forms[0].txtReturnDate.value; 

     var myDate = newDate(); 
     myDate.setDate(myDate.getDate() + 7); 

     document.cookie = "name=" + encodeURIComponent(Name) + "; expires=" + myDate.toUTCString(); 
     document.cookie = "address=" + encodeURIComponent(Address) + "; expires=" + myDate.toUTCString(); 
     document.cookie = "city=" + encodeURIComponent(City) + "; expires=" + myDate.toUTCString(); 
     document.cookie = "state=" + encodeURIComponent(State) + "; expires=" + myDate.toUTCString(); 
     document.cookie = "zip=" + encodeURIComponent(Zip) + "; expires=" + myDate.toUTCString(); 
     document.cookie = "email=" + encodeURIComponent(Email) + "; expires=" + myDate.toUTCString(); 
     document.cookie = "carType=" + encodeURIComponent(CarType) + "; expires=" + myDate.toUTCString(); 
     document.cookie = "pickupDate=" + encodeURIComponent(PickupDate) + "; expires=" + myDate.toUTCString(); 
     document.cookie = "returnDate=" + encodeURIComponent(ReturnDate) + "; expires=" + myDate.toUTCString(); 

     window.alert ("Your reservation has been saved."); 

    } // end function setCookies() 

    function displayCookies() 
    { 
     // this function will read the saved cookies, and repopulate the form with the cookie values 

     var cookieString = decodeURIComponent(document.cookie); 
     var cookieArray = cookieString.split("; "); 

     if (document.cookie == 0) 
     { 
      alert("You have not made a reservation"); 
     } 
     else 
     { 
      // retrieve each cookie, and display the cookie value in the appropriate form field 
     document.forms[0].txtName.value = cookieArray[0].lastIndexOf("=") + 1); 
     document.forms[0].txtAddress.value = cookieArray[1].lastIndexOf("=") + 1); 
     document.forms[0].txtCity.value = cookieArray[2].lastIndexOf("=") + 1); 
     document.forms[0].txtState.value = cookieArray[3].lastIndexOf("=") + 1); 
     document.forms[0].txtZip.value = cookieArray[4].lastIndexOf("=") + 1); 
     document.forms[0].txtEmail.value = cookieArray[5].lastIndexOf("=") + 1); 
     document.forms[0].txtCarType.value = cookieArray[6].lastIndexOf("=") + 1); 
     document.forms[0].txtPickupDate.value = cookieArray[7].lastIndexOf("=") + 1); 
     document.forms[0].txtReturnDate.value = cookieArray[8].lastIndexOf("=") + 1); 
     } 

    } // end function displayCookies() 
+0

Вы говорите, что ваша функция работает неправильно, но не говорите, что это проблема. Не могли бы вы быть более конкретными? – excentris

+0

Да, извините, он вообще не создает файл cookie .. и когда я помещал его в веб-разработчик на firefox, это говорит, что ошибка ссылки setCookies не определена и такая же для displayCookies –

+0

Где вы называете эти функции? Не могли бы вы предоставить [jsfiddle] (http://jsfiddle.net/), воспроизводящие вашу проблему? – excentris

ответ

0

У вас есть несколько проблем на вашем коде:

Вы не извлекая значения из различных полей, хранящихся на куки правильно, вам нужно использовать кусочек, чтобы получить правый часть.

Я также предполагаю, что линия var myDate = newDate(); должна быть var myDate = new Date();.

Я поменял вашу скрипку (найду ее here) и загрузил код в <head>, и теперь, похоже, он правильно сохраняет и отображает файлы cookie.

+0

Удивительно большое вам спасибо .. Сейчас я вижу, как его не найти правильный Я буду возиться с этим! Еще раз спасибо! –

+0

@ JonnyParko добро пожаловать. Я обновил скрипт, чтобы правильно получить значения. – excentris

Смежные вопросы