我遇到了一个奇怪的问题,它似乎与浏览器相关(IE9和较低与IE11),但想知道为什么奇怪的行为。
问题描述:我使用弹簧框架并使用其相关的taglibs在我的JSP上检索数据。有一个称为索引的变量,我从表单中取回,并且过去以下方式检索。
<html:hidden property="index" name="pdmAcctSuppressForm" />
上述变量的值,即使用以下代码段在JavaScript中访问index
。
var index = document.getElementById("index").value;
JavaScript似乎按预期工作,并在所有IE浏览器中检索实际值,直到IE9,但似乎无法在IE11上使用。document.getElementById("index")
在IE11上返回无效。
解决方案:通过从上述Taglib实现的上述实现来解决问题 <html:hidden property="index" name="pdmAcctSuppressForm" />
to
<input type="hidden" name="pdmAcctSuppressForm" value="${pdmAcctSuppressForm.index}" id="index"/>
我想知道IE11上发生了什么变化,这使得实现无法使用,并且我引用的解决方案是正确有效的。
JavaScript似乎按预期工作,并在所有IE浏览器中检索实际值,直到IE9,但似乎无法在IE11上使用。
...
我想知道IE11上发生了什么变化,这使得实现无法使用,并且我引用的解决方案是正确有效的。
您也应该有IE8的问题。通过IE7,IE有一个错误:它使用getElementById
发现没有您要求的id
,但确实具有匹配的name
。也就是说,在IE8和更早的IE8中:
<input name="foo">
...将由document.getElementById("foo")
。
这是一个错误(尽管Microsoft将其称为一项功能,并将其记录在案),并且已修复。
更多(在我的博客上):
- ...以任何其他名称,都会闻起来像甜