IE11上{html:hidden>和<input type =“hidden”/>的区别

时间:2015-05-13 11:06:28

标签: javascript spring internet-explorer-11 jsp-tags

我遇到了一个奇怪的问题,似乎与浏览器有关(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上发生的变化导致实现无法使用,以及我引用的解决方案是否正确且有效。

1 个答案:

答案 0 :(得分:2)

  

javascript似乎按预期工作并在IE9中检索所有IE浏览器中的实际值,但似乎无法在IE11上运行。   
...   
我想知道在IE11上发生的变化导致实现无法使用,以及我引用的解决方案是否正确且有效。

你也应该对IE8有这个问题。通过IE7,IE有一个错误:它找到使用getElementById的元素没有你要求的id ,但确实有一个匹配的name 。也就是说,在IE8及更早版本中:

<input name="foo">

...将由document.getElementById("foo")找到。

这是一个错误(虽然有一段时间微软称之为功能,并记录了它),并且已修复。

更多(在我的博客上)