0

我在我的 JSP 中定义了这个函数:

function addcolor(){
    alert("found " + document.getElementById("clrCd").value);
}

我的 HTML(来自 struts 1.3 应用程序)

<input type="text" name="clrCd" maxlength="2" size="2" value="">
<input type="button" name="add" value="ADD" onclick="addcolor()">

当我的浏览器处于怪异模式时,我单击添加按钮,我会收到带有文本输入值的警报

如果我将浏览器置于 IE8 标准模式(通过 F12 控制台)并运行相同的代码,我会得到:

错误:无法获取属性“值”的值:对象为空或未定义

为什么会发生这种情况……我已经浪费了一整天的时间来处理 IE 和所有这些都是胡说八道。

这是一个遗留应用程序,我不能真正改变太多,但我真的很想让它们脱离怪癖模式,这样我们就可以开始使用一些 HTML5 功能,如 bootstrap 和 angularJS。

有任何想法吗?

杰森

4

2 回答 2

2

这不是“IE 胡说八道”,而是您没有任何 id 的元素clrCd。您只设置了 name 属性。

添加一个id="clrCd"到你的元素,你会有更多的运气。

于 2013-03-15T20:59:06.427 回答
0

其实你可以在IE7之前做到这一点见文档

http://msdn.microsoft.com/en-us/library/ie/ms536437(v=vs.85).aspx

Windows Internet Explorer 8 及更高版本。在 IE8 标准模式下,getElementById 仅对 ID 属性执行区分大小写的匹配。在 IE7 标准模式和以前的模式中,此方法对 ID 和 NAME 属性执行不区分大小写的匹配

于 2014-10-22T09:30:07.350 回答