使用jQuery从选择框中获取值

时间:2011-11-07 21:55:54

标签: javascript jquery forms internet-explorer-8

我有一个简单的选择输入,我正在使用jQuery的.val()来从中获取选择。

出于某种原因,它在Internet Explorer 8中抛出一个“对象不支持此属性或方法”错误,这是我见过的第一个错误jQuery actaully throw。

我在http://jsfiddle.net/gWvwS

复制了此错误

我做错了什么?似乎很直接给我......

6 个答案:

答案 0 :(得分:3)

尝试:

var isplay_entry_form = $('#display_entry_form').val();
alert(isplay_entry_form);
全局窗口上的

display_entry_form实际上是元素。它知之甚少,因为它非常糟糕,不应该被使用。所以你在IE中覆盖它。

IE8的固定示例:http://jsfiddle.net/gWvwS/7/

答案 1 :(得分:2)

IE不支持与DOM元素同名的Javascript变量。 IE似乎使用一种通用机制来通过id和寻址javascript变量来寻址DOM元素。这意味着稍后在源中声明的任何对象(DOM元素或javascript var)都是被使用的对象。当您尝试访问javascript变量时,这可能会导致“对象不支持此属性或方法”错误。 (source

这应该有效:

display_entry_form_value = $('#display_entry_form > option:selected').val();
alert(display_entry_form_value);

答案 2 :(得分:1)

我认为它与此有关,该值属于选项,而不是选择。

尝试

$('select#display_entry_form option:selected').val();

答案 3 :(得分:1)

您的文档包含名称为display_entry_form的元素。在IE中,命名元素可通过其名称全局访问。因此,您必须使用var(声明新的本地变量 [需要验证] ),或选择其他名称。

var other_name = $('#display_entry_form').val();
alert(other_name);

小提琴http://jsfiddle.net/gWvwS/5/

答案 4 :(得分:0)

我更新了jsfiddle以更正代码:

http://jsfiddle.net/gWvwS/6/

答案 5 :(得分:0)

<select>标记没有value属性,而是selectedIndex属性。