2009-12-18 3 views
0

Я использую плагин jQuery толстого окна (версия 3) и внутри него хочу разместить форму, которая будет отправлена ​​с использованием $ .post. Но элементы формы не ведут себя так, как должны. Для, например, есть выберите полеЭлементы формы, которые ведут себя необычно внутри jQuery толстого ящика

<select name="priority" id="priority"> 
    <?php for($i = 5; $i > 0; $i--){ ?>           
      <!-- <input type="radio" class="star" name="priority" value="<?php echo $i ?>"> --> 
      <option value="<?php echo $i; ?>"><?php echo $i; if($i == 5) echo ' (lowest)'; if($i == 1)echo ' (highest)'; ?></option>    
    <?php } ?> 
    </select> 

, когда я нажимаю на кнопку, которая вызывает функцию представить,

function add(){ 
    var pr = document.getElementById("priority").value; 
    console.log(pr); 

} 

он предупреждает только первое значение ИЭ. 5 независимо от выбранного варианта.

Пожалуйста, помогите. Это обычная проблема?

ответ

1

Как вы используете JQuery, вы должны использовать

var pr = $("#priority option:selected").val(); 

или

var pr = $("#priority").val(); 

вместо

var pr = document.getElementById("priority").value; 

это должно решить его

см http://docs.jquery.com/Attributes/val более я NFO

+0

На самом деле это то, что я написал изначально, но затем, когда он провалился, попробовал базовые js. Согласно моим знаниям document.getElementById должен работать с jquery. Пожалуйста, исправьте – naiquevin

1

С JQuery:

var pr = $("#priority option:selected").val(); 

Если вы хотите использовать чистый JavaScript, вы должны быть в состоянии сделать:

var i = document.getElementById("priority").selectedIndex; 
var options = document.getElementById("priority").options; 

var value = options[i].value; 
+0

+1 doh! вот где я ошибся с моим ответом, нужно освежить мой jQuery! – Rowan

+0

Интересно, что я просто пробовал $ ('# priority'). Val(), и он работал правильно. –

+0

yep, я просто проверил это снова, и я был прав изначально. Любой из этих методов действителен. – Rowan

1

Я не знаю, Thickbox конкретно, но проблемы с формами являются общими для многих инструментов Lightbox. Причина в том, что инструмент 1. принимает элементы формы из контекста формы и 2. обычно копий их в Thickbox/Лайтбокс/на уровне DOM. Когда окно закрывается, элемент уничтожается или сбрасывается, а не перемещается обратно в форму с любыми измененными параметрами, оставшимися в живых.

Как правило, это можно изменить, но только путем изменения самого скрипта * окна, чтобы он безопасно перемещал элементы DOM взад и вперед.

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