2011-12-24 5 views
2

Итак, я пытаюсь получить всплывающее окно, чтобы показать, когда пользователь оценивает элемент, но значение раскрывающегося меню не будет перемещаться вместе с ним. Когда я отправлю, я бы хотел, чтобы он взял значение и поместил его в URL как переменную. Есть идеи?Попытка получить значение меню перед отправкой

<form onsubmit="window.open('rateIt.php?rate=<?php echo **THE VALUE OF THE DROP-DOWN** ?>','popup','width=500,height=500,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"> 
    <select name="rate" id="rate"> 
    <option>1</option> 
    <option>2</option> 
    <option>3</option> 
    <option>4</option> 
    <option>5</option> 
    </select> 
    <input name="rateit" type="submit" value="Rate It"/> 
</form> 

ответ

2

питания самостоятельно функция представить события вашей формы:

document.getElementById("formId").onsubmit = function(){ 
    var rateVal = this.rate.value; 
    window.open('rateIt.php?rate=' + rateVal); 
}; 

Просто убедитесь, что вы либо поместить этот скрипт в нижней вашей страницы или в onload обработчика вашего тела. Если вы просто положите его в раздел head, getElementById не найдет вашу форму, так как dom еще не будет готов.

EDIT

Просто убедитесь, что вы добавляете values эти варианты:

<option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    <option value="5">5</option> 
+0

Это прекрасно работает! Благодаря тонну! Я искал, как это сделать, возможно, через час. – Alex

+0

Проблема с этим - IE 8 и ниже возвратит пустую строку, потому что элементы опции не имеют атрибута value. Если OP добавляет, что (например, каждый имеет атрибут value так же, как текст), то все хорошо. – RobG

+0

@Alex - РобГ знает, о чем говорит. Можете ли вы добавить атрибуты значения для каждого из ваших элементов элемента? –

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