IE11 上的 <html:hidden> 和 <input type= "hidden" > 之间的区别



我遇到了一个奇怪的问题,它似乎与浏览器相关(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将其称为一项功能,并将其记录在案),并且已修复。

更多(在我的博客上)

  • ...以任何其他名称,都会闻起来像甜

相关内容

  • 没有找到相关文章

最新更新