gpt4 book ai didi

Internet Explorer 中的 jquery 选择框错误

转载 作者:行者123 更新时间:2023-12-01 00:07:12 25 4
gpt4 key购买 nike

我正在使用jquery 1.2.6(无法升级,因为它是系统的一部分)。我收到一个奇怪的错误。

这是我的代码:

<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
</head>
<body>
<select id="state" name="state">
<option selected="selected"></option>
<option value="none">N/A</option>
<option value="AK">AK</option>
<option value="AL">AL</option>
<option value="AR">AR</option>
<option value="AZ">AZ</option>
<option value="CA">CA</option>
</select>
</body>
</html>
<script type="text/javascript">
$(function() {
var test = $('#state').val();
});
</script>

当我在 IE9 中测试时,加载页面时出现此错误:

"Unable to get value of the property 'specified': object is null or undefined" 

这是为什么呢?

最佳答案

The value in an option is optional (“如果不存在,则选项元素的值是该元素的文本内容。”)。所以你似乎在这里遇到了一个错误。

我查看了the old jQuery source code我发现了这个错误:

value = jQuery.browser.msie && !option.attributes.value.specified ? option.text : option.value;

option.attributes.value 未定义,因此 option.attributes.value.specified 崩溃。

由于该错误存在于 jQuery 中(更准确地说,看起来像是试图解决现已修复的旧 IE 错误),因此在此特定任务中不使用 jQuery 是合法的。

我建议使用普通的 JS 解决方案作为解决方法,而不是更改 HTML(您的 HTML 没问题):

var test = document.getElementById('state').value;

请注意,当我说 bug 存在于 jQuery 中时,主要意味着 2008 版 jQuery 在尝试解决 2008 浏览器的 bug 时在最新版本的 IE 中失败。您确实应该告诉您的架构师,保留这个旧的 jQuery 并不是一个明智的决定。

关于Internet Explorer 中的 jquery 选择框错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13836407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com