2013-05-10 2 views
0

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

Функция «opslaan» связана с кнопкой на странице HTML.

function opslaan() 
{ 
    createCookie('radius',document.getElementById("range").value,8); 
    alert("opgeslagen"); 
} 

function readCookie(name) 
{ 
    var nameEQ = name + "="; 
    var ca = document.cookie.split(';'); 
    for(var i=0; i < ca.length; i++) { 
     var c = ca[i]; 
     while (c.charAt(0)==' ') 
      c = c.substring(1,c.length); 
     if (c.indexOf(nameEQ) == 0) 
      return c.substring(nameEQ.length,c.length); 
    } 
    return null; 
} 

function createCookie(name,value,days) { 
    if (days) { 
     var date = new Date(); 
     date.setTime(date.getTime() + (days*24*60*60*1000)); 
     var expires = ";expires=" + date.toGMTString(); 
    } 
    else 
     var expires = ""; 
    document.cookie = name + "=" + value + expires +";path=/"; 
} 

Это кнопка и поле диапазон, где нужно получить значение из:

<fieldset class="one-third column"> 
    <label for="">Radius van de kaart (km)</label> 
    <input type="range" 
      min="5" 
      max="20" 
      value="5" 
      step="5" 
      onchange="showValue(this.value)" /> 
    <span id="range">5</span> 
    <script type="text/javascript"> 
     function showValue(newValue) 
     { 
      document.getElementById("range").innerHTML=newValue; 
     } 
    </script> 
</fieldset> 
<script> 
    alert(readCookie('radius')); 
</script> 

<div class="one-third column"> 
    <a class="full-width button margin-top25" 
     href="home.html" 
     onclick="opslaan()"> 
     Opslaan 
    </a> 
</div> 

Это, кажется, работает без поля диапазона и кнопки.

+0

Это, кажется, работает нормально http://jsfiddle.net/ arunpjohny/ddus4/2/ –

+0

Я добавил свой код кнопки и поля диапазона, возможно, в той части, где я допустил ошибку –

+0

'document.getElementById (« range »). Значение' будет возвращено undefined. Это ваша проблема. Попробуйте использовать 'document.getElementById (« диапазон »). InnerHTML' – noShowP

ответ

0

В вашем случае range является span не входной элемент, так что вам нужно использовать свойство innerHTML прочитать содержимое этого элемента вместо использования value.

использование

document.getElementById("range").innerHTML 

вместо

document.getElementById("range").value 

Ex:

function opslaan() 
{ 
    createCookie('radius',document.getElementById("range").innerHTML,8); 
} 

Демо: Fiddle

0

document.getElementById("range").value будет возвращен не определен. Это ваша проблема. Попробуйте использовать document.getElementById("range").innerHTML

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