Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery从选择框中获取值_Javascript_Jquery_Forms_Internet Explorer 8 - Fatal编程技术网

Javascript 使用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\

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

出于某种原因,它在InternetExplorer8中抛出了一个“Object不支持此属性或方法”错误,这是我见过的jQuery实际抛出的第一个错误

我已在上复制了此错误


我做错了什么?对我来说似乎很简单…

我更新了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对我很有用。谢谢你解释原因!