我遇到了一个奇怪的问题,似乎与浏览器有关(IE9和低等对IE11),但想知道为什么会出现奇怪的行为。
问题描述:我使用spring框架并使用其相关的taglibs来检索我的JSP上的数据。有一个名为index的变量,我从表单中检索它,它曾经用以下方式检索。
<html:hidden property="index" name="pdmAcctSuppressForm" />
使用以下代码段在javascript中访问上述变量index
的值。
var index = document.getElementById("index").value;
javascript似乎按预期工作并在IE9中检索所有IE浏览器中的实际值,但似乎无法在IE11上运行。 document.getElementById("index")
在IE11上返回无效。
解决方案:通过更改上面提到的taglib实现来解决问题
<html:hidden property="index" name="pdmAcctSuppressForm" />
到
<input type="hidden" name="pdmAcctSuppressForm" value="${pdmAcctSuppressForm.index}" id="index"/>
我想知道在IE11上发生的变化导致实现无法使用,以及我引用的解决方案是否正确且有效。
答案 0 :(得分:2)
javascript似乎按预期工作并在IE9中检索所有IE浏览器中的实际值,但似乎无法在IE11上运行。
...
我想知道在IE11上发生的变化导致实现无法使用,以及我引用的解决方案是否正确且有效。
你也应该对IE8有这个问题。通过IE7,IE有一个错误:它找到使用getElementById
的元素没有你要求的id
,但确实有一个匹配的name
。也就是说,在IE8及更早版本中:
<input name="foo">
...将由document.getElementById("foo")
找到。
这是一个错误(虽然有一段时间微软称之为功能,并记录了它),并且已修复。
更多(在我的博客上):