我在我的JSP中定义了这个函数:
function addcolor(){
alert("found " + document.getElementById("clrCd").value);
}
我的HTML(来自struts 1.3 app)
<input type="text" name="clrCd" maxlength="2" size="2" value="">
<input type="button" name="add" value="ADD" onclick="addcolor()">
当我的浏览器处于怪癖模式时,我点击了ADD按钮,我得到了带有文本输入值的警报
如果我将浏览器置于IE8标准模式(通过F12控制台)并运行相同的代码,我得到:
错误:无法获取属性“value”的值:object为null或 未定义
为什么到底发生这种情况......我已经失去了整整一天的时间来处理IE,所有这些都是胡说八道。
这是一个遗留应用程序,我真的无法改变太多,但我真的想让它们脱离怪异模式,这样我们就可以开始使用一些HTML5功能,如bootstrap和angularJS。
任何想法?
杰森
答案 0 :(得分:1)
这不是“IE废话”,而是您没有任何ID clrCd
的元素。您只设置了name属性。
为您的元素添加id="clrCd"
,您将获得更多运气。
答案 1 :(得分: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属性执行不区分大小写的匹配