为什么隐藏输入的document.getElementById适用于IE而不是Chrome?

时间:2011-06-10 19:17:44

标签: javascript html getelementbyid

我有一个问题,这部分js代码无法在Chrome中运行但在IE中工作。

这是我的javascript代码:

function submitformWithPage(xpage)
{

  document.getElementById('itempage').value = xpage;
 alert(xpage);
  document.searchForm.submit();

}

这是我的HTML代码

<form name="searchForm" action="search.php" method="get">

<input  type="text" name="search" value="<?php if(isset($_GET['search'])) { echo $_GET['search']; } ?>"/>
<input type="hidden" name="parameter" value="test" />
<input id="item" type="hidden" name="itempage" value="1" />
<input type="hidden" name="pageBigForward" value="10" />
<input type="hidden" name="pageSmallForward" value="1" />

<button style="" onclick="javascript: submitform()">Search</button>

</form>

我使用此代码提交了表单,它可以在IE中使用,但不适用于Chorme。

<button style="" onclick="javascript: submitformWithPage(3);">3</button>

我迷失了如何解决这个问题。

任何人都可以帮助我吗?

提前致谢。

5 个答案:

答案 0 :(得分:5)

您的输入具有itempage名称,而不是 ID

<input id="item" type="hidden" name="itempage" value="1" id="itempage"/>

使用name-as-id is only supported in IE5-7

答案 1 :(得分:4)

函数getElementById按属性“id”搜索,而不是“name”。

所以用项目替换itempage,你就可以了。

答案 2 :(得分:3)

使用id代替name

document.getElementById('item').value = xpage;

答案 3 :(得分:2)

您已将隐藏元素的名称而非ID设置为“itempage”

答案 4 :(得分:1)

它适用于IE,因为IE会考虑“name”属性以及“getElementById()”的“id”属性。实际上,这是一个非常愚蠢的行为,但它有利于您的代码,因为您没有将该字符串作为“id”值。