我有一个简单的选择输入,我正在使用jQuery的.val()来从中获取选择。
出于某种原因,它在Internet Explorer 8中抛出一个“对象不支持此属性或方法”错误,这是我见过的第一个错误jQuery actaully throw。
复制了此错误我做错了什么?似乎很直接给我......
答案 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);
答案 4 :(得分:0)
我更新了jsfiddle以更正代码:
答案 5 :(得分:0)
<select>
标记没有value
属性,而是selectedIndex
属性。