Javascript 使用jQuery从选择框中获取值
我有一个简单的选择输入,我使用jQuery的.val()从中获取选择。 出于某种原因,它在InternetExplorer8中抛出了一个“Object不支持此属性或方法”错误,这是我见过的jQuery实际抛出的第一个错误 我已在上复制了此错误Javascript 使用jQuery从选择框中获取值,javascript,jquery,forms,internet-explorer-8,Javascript,Jquery,Forms,Internet Explorer 8,我有一个简单的选择输入,我使用jQuery的.val()从中获取选择。 出于某种原因,它在InternetExplorer8中抛出了一个“Object不支持此属性或方法”错误,这是我见过的jQuery实际抛出的第一个错误 我已在上复制了此错误 我做错了什么?对我来说似乎很简单…我更新了JSFIDLE以更正代码: 我更新了JSFIDLE以更正代码: 我想这与,该值属于选项,而不是选择有关 试一试 我想这与,这个值属于选项,而不是选择有关 试一试 尝试: 全局窗口上的display\u entry\
我做错了什么?对我来说似乎很简单…我更新了JSFIDLE以更正代码:
我更新了JSFIDLE以更正代码:
我想这与,该值属于选项,而不是选择有关 试一试
我想这与,这个值属于选项,而不是选择有关 试一试 尝试: 全局窗口上的
display\u entry\u form
实际上是元素。它的知名度要低得多,因为它非常糟糕,不应该被使用。所以你在IE中覆盖了它
修复了IE8的示例:尝试:
全局窗口上的display\u entry\u form
实际上是元素。它的知名度要低得多,因为它非常糟糕,不应该被使用。所以你在IE中覆盖了它
IE8的固定示例:标签没有
值
属性,而是selectedIndex
属性。标签没有值
属性,而是一个selectedIndex
属性。IE不支持与DOM元素同名的Javascript变量。IE似乎使用了一种通用机制,通过id寻址DOM元素并寻址Javascript变量。这意味着在源代码中稍后声明的对象(DOM元素或javascript变量)就是要使用的对象。当您尝试访问javascript变量时,这可能会导致“对象不支持此属性或方法”错误。()
这应该起作用:
display_entry_form_value = $('#display_entry_form > option:selected').val();
alert(display_entry_form_value);
IE不支持与DOM元素同名的Javascript变量。IE似乎使用了一种通过id寻址DOM元素和寻址Javascript变量的通用机制。这意味着在源代码中稍后声明的对象(DOM元素或javascript变量)就是要使用的对象。当您尝试访问javascript变量时,这可能会导致“对象不支持此属性或方法”错误。() 这应该起作用:
display_entry_form_value = $('#display_entry_form > option:selected').val();
alert(display_entry_form_value);
您的文档包含一个名为
display\u entry\u form
的元素。在IE中,命名元素可以通过其名称进行全局访问。因此,您必须使用var
(声明一个新的局部变量[需要验证]),或者选择另一个名称
var other_name = $('#display_entry_form').val();
alert(other_name);
Fiddle您的文档包含一个名为
显示\输入\表单
的元素。在IE中,命名元素可以通过其名称进行全局访问。因此,您必须使用var
(声明一个新的局部变量[需要验证]),或者选择另一个名称
var other_name = $('#display_entry_form').val();
alert(other_name);
Fiddle为变量选择另一个名称,或在其前面添加
var
。你的问题解决了吗?是的,看起来即使只是更改输入的id/名称也能起作用。但是为什么显示输入表单不起作用?我无法复制它。您在项目中使用的jQuery版本是什么?@John,我已经在下面解释过了。不过,我不能完全确定var
。在前面放一个var。[Internet Explorer为您提供了与作用域变量相关的不同行为,因此var是一种良好做法][1]。[1] :为变量选择另一个名称,或在其前面添加var
。你的问题解决了吗?是的,看起来即使只是更改输入的id/名称也能起作用。但是为什么显示输入表单不起作用?我无法复制它。您在项目中使用的jQuery版本是什么?@John,我已经在下面解释过了。不过,我不能完全确定var
。在前面放一个var。[Internet Explorer为您提供了与作用域变量相关的不同行为,因此var是一种良好做法][1]。[1] :嗯,只是一次尝试:)现在我看到他实际上使用了选项:selected-我不确定我是否忽略了它或者他后来是否更改了它。嗯,只是一次尝试:)现在我看到他实际上使用了选项:selected-我不确定我是否忽略了它或者他后来是否更改了它。添加var对我来说很有效。谢谢你解释原因!添加var对我很有用。谢谢你解释原因!