$(this).find('select option:selected').each(function (i, val) {
var selectedValue = $(val).val(); //this returns the text from the option instead of the value
});
这是ie7中的已知问题吗?我没有找到任何关于它的信息?可能的解决方法?感谢
答案 0 :(得分:5)
.val()
仅适用于
.val()方法主要用于获取表单元素的值 例如input,select和textarea。对于
<select multiple="multiple">
元素,.val()方法返回一个数组 包含每个选定的选项;如果未选择任何选项,则返回 空。
要实现您想要的效果,您可以遍历select
并在其上调用.val()
,原始代码有效地在val()
上调用option
,而不是实际的select
元素,这就是为什么它不起作用。
$(this).find('select').each(function (i, val) {
var selectedValue = $(this).val();
});
val()
还有一个额外好处,即在multiple
选择的情况下能够返回一组值:(强调我的)
.val()方法主要用于获取表单元素的值 例如input,select和textarea。 对于
<select multiple="multiple">
元素,.val()方法返回一个数组 包含每个选定的选项;如果未选择任何选项,则返回 空。
答案 1 :(得分:0)
尝试
单选
var selectedValue = $(this).val();
你只需要在上面写一行就可以获得所选择的值。
对于multislect,它应该是
var result = "";
$('#idselect option:selected').each(function(i, item)
{
result += $(this).val() + ", ";
});
答案 2 :(得分:0)
这是一种预期的行为,因为您要求选项的值而不是元素本身。
不要过于复杂化。
$(this).find('select').each(function() {
var val = $(this).val();
});