在IE11中出现Java脚本错误,但在IE9中运行正常
Java script error in IE11 but in IE9 working properly
if ((document.getElementById('rank').value != '01') && (document.getElementById('rank').value != '04') && (document.getElementById('CkbxSecondeePartner').checked)) {
alert('The rank of the employee is not at the Partner level. Only Active Partners can be on secondment');
divObj.style.display = 'none'; //hides
document.getElementById('CkbxSecondeePartner').checked = false;
}
错误显示在:
((document.getElementById('rank').value != '01') can not read property 'value' of null)
IE有一个getElementById(id)
实现的bug(只有在标准模式下运行时才会修复)。
在IE中,getElementById(id)
实际上将返回一个具有匹配name
属性的元素,即使这是一个完全无效的匹配。(同样,如果不是在标准模式下运行)
因此,如果你测试的其中一个浏览器应用了不同的呈现模式(代码可能被提供了不同的服务,或者你可能篡改了开发人员工具),你可能会看到不同的结果。
如果你不确定是否有匹配,一定要先测试元素。
var rankField = document.getElementById('rank');
if(rankField && rankField.value != '01'){
//...
}
我建议您在尝试访问其属性之前验证您的元素:
if (document.getElementById('rank') && document.getElementById('CkbxSecondeePartner')) {
if ((document.getElementById('rank').value != '01') && (document.getElementById('rank').value != '04') && (document.getElementById('CkbxSecondeePartner').checked)) {
alert('The rank of the employee is not at the Partner level. Only Active Partners can be on secondment');
divObj.style.display = 'none'; //hides
document.getElementById('CkbxSecondeePartner').checked = false;
}
}
希望没有人响应IE11的问题。相同的脚本可以在ie8或ie9中正常工作,但在IE11中不行。在大多数页面中使用javascript的遗留应用程序存在问题。
代替(. getelementbyid(等级)。= '01')
使用(document.getElementById('rank') != '01')
这应该能解决你的问题。
实际的问题是,我们不能用300万行代码对旧系统做这个改变,我们不能到处做这个改变
相关文章:
- javascript/jQuery:在title中添加换行符——在IE9中有效,但在IE8中无效
- 以下颜色更改功能在IE9和Firefox中运行良好,但在早期的IE或Chrome中则不然
- 在IE9中javascript不起作用,但在打开控制台后它就起作用了
- 在IE9中未检测到视图模型函数绑定,但在FF和Chrome中有效
- 禁用编辑和删除按钮在IE9中不起作用,但在IE11中起作用
- Javascript从 ASP.net 代码隐藏中触发,在Chrome中运行,但在IE9中不运行
- 为什么下面的Javascript在Firefox 12上不起作用,但在IE9中工作
- 带有javascript的网站;我不在IE9工作,但在IE9's兼容性模式-如何强制兼容性视图
- Jquery消息在IE8上工作,但在IE9上不工作
- 无法在Firefox和IE9中获取数据,但在Chrome和Safari中可以正常工作
- 文档.getElementByName Code在Firefox上运行良好,但在IE9上不起作用
- 在IE9地址栏中粘贴/输入URL有效,但在href或window.open中无效
- IE9:脚本只在调试器中工作,但在非调试时不工作
- 不工作在IE9标准,但在其他模式下工作
- 警告消息在IE6-7-8中不起作用,但在IE9和Mozilla中它工作得很好
- 我在客户端和服务器端都实现了xdomain脚本,但在IE9中不断获得'超时等待iframe套接字'警告
- 在IE11中出现Java脚本错误,但在IE9中运行正常
- innerHTML不能在ie9中工作,但在Firefox中工作良好
- Internet Explorer - confirm() 在 IE9 中不起作用,但在 IE8 中工作
- 使用eval()在IE8和ie7中不工作,但在IE9, FF,Chrome中工作