0

我正在使用jquery 的thickbox 插件(版本3),我想在其中放置一个将使用$.post 提交的表单。但是表单元素并没有表现出应有的行为。例如,有一个选择框

<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 无论选择什么选项。

请帮忙。这是一个普遍面临的问题吗?

4

3 回答 3

1

我不具体了解thickbox,但表单问题对于许多Lightbox 之类的工具来说很常见。原因是该工具 1. 将表单元素从表单上下文中取出,2. 通常将它们复制到 DOM 级别的厚盒/灯箱/任何东西中。当盒子关闭时,元素被销毁或重置,而不是很好地移回表单,任何更改的设置都保留下来。

通常可以更改此行为,但只能通过更改 *box 脚本本身来安全地来回传输 DOM 元素。

于 2009-12-18T15:26:23.010 回答
1

当你使用 jQuery 时,你应该使用

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

或者

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

代替

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

这应该解决它

有关更多信息,请参阅http://docs.jquery.com/Attributes/val

于 2009-12-18T15:01:52.373 回答
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;
于 2009-12-18T15:09:57.677 回答