jQuery的.val()在IE浏览器中对选择元素无效

4

我尝试了所有这些方法来获取下拉框选择的值

inventory_rule = $("#inventory_rule :selected").attr('value');
inventory_rule = $("#inventory_rule option:selected").val();
inventory_rule = $("#inventory_rule").attr('value');
inventory_rule = $("#inventory_rule").val();

这些在Mozilla中都能正常工作,但在IE中却不行。

有没有其他替代方案呢?


你能发一下<select>的HTML代码吗?jQuery和IE的版本是什么?我刚刚检查了一下,在IE中$("#inventory_rule).val()可以正常工作,其中"inventory_rule"是<select>标签的ID。 - salgiza
3个回答

2
你的第四个尝试是获取下拉框选中值最直接的方法,应该可以正常工作。
var inventory_rule = $("#inventory_rule").val();

我在jsfiddle.net上写了一个快速且简单的示例来展示它是有效的。这意味着你的选择器可能是错误的。请检查并确保选择元素具有id="inventory_rule",并确保该id属性在页面上也是唯一的。如果这是第一次声明变量,请不要忘记var关键字。
编辑:强调确保id属性是唯一的部分,非唯一的id将肯定会在IE中引起问题。

1

我刚刚遇到了这个问题。

当获取一个

<select>

IE 10在值前后插入空格的标签。 因此,只需修剪该值即可解决您的问题。

var inventory_rule = $.trim($("#inventory_rule").val());

我永远也想不到那个。天哪。 - plinkplink

0

只有在通过ajax提交表单时才有用。 - Andy E
@安迪,我不同意 - 他仍然可以在插件中使用.value()函数,而无需使用ajax功能。 - Tomas Aschan
1
但这与使用.val()获取元素的值没有什么不同,这也是插件在其底层代码中使用的方法。 - Andy E

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接