2015-05-26 2 views
0

Я хочу обновить файл cookie (через update.php) и перезагрузить сайт, передав новые данные (id, value). Значение 1 предварительно выбирается и использование jQuery устанавливает str = 1, а не выбранное значение параметра, например. 6.jQuery .change выбранное значение предварительно выбранное

$(".a2d").change(function() { 
     var prodId = this.id; 
     var e = document.getElementById(prodId); 
     var str = e.options[e.selectedIndex].value; 
     var url = "../update.php?id=" + prodId + "&updateNewValue=" + str; 
     $(location).attr('href',url); 
    }); 

HTML:

<select class="a2d" id="2" name="2"> 
    <option value="0">0</option> 
    <option value="1" selected="">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
</select> 

С помощью

var str = $('#' + prodId).options[this.selectedIndex].val(); 

Это, кажется, работает лучше (как он получает правильное выбранное значение), но ошибка в поджигатель говорит:

Uncaught TypeError: Не удается прочитать свойство «6» не определено

ответ

1
$('#' + prodId) 

Это объект JQuery, не JavaScript Object, следовательно, использовать его как:

document.getElementById(prodId).options[this.selectedIndex].value; 
+0

эм, спасибо !! Клиент скоро отправляется. Ты спас мою работу! : D – user3236231

1

Вам не нужно, чтобы получить выбранный индекс, просто получить значение <select>

var str = $('#' + prodId).val(); 

Но поскольку prodId является this.id, вы можете просто использовать:

var str = $(this).val(); 
1

Просто прочитайте значение выбора элемента с помощью this ссылки

$(".a2d").change(function() { 
    var str = $(this).val();//or just this.value 
    var url = "../update.php?id=" + prodId + "&updateNewValue=" + str; 
    $(location).attr('href', url); 
}); 

В вашем случае $('#' + prodId) возвращает объект JQuery, который не имеет в options свойства, которое принадлежит к опорному элементу дома.

1

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

var str = $('#' + prodId).val(); 

или

var str = this.value;// best option 
Смежные вопросы