为什么document.getElementById在IE中可以用于隐藏输入框,但在Chrome中无法使用?

4

我有一个问题,这段JavaScript代码在IE中可以工作但是在Chrome中不起作用。

以下是我的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中运行良好,但在Chrome中却不行。

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

我不知道如何解决这个问题。
有人能帮帮我吗?
提前感谢。
5个回答

5

您输入的是itempage名称,而不是id

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

使用名称作为ID 仅在IE5-7中受支持

注意:请避免在现代Web开发中使用此技术。


4

getElementById函数是通过属性“id”进行搜索,而不是“name”。

因此,将itempage替换为item即可。


3
请使用id代替name
document.getElementById('item').value = xpage;

2
您已将隐藏元素的名称设置为“itempage”,但未设置其ID。

1
它在IE中工作是因为IE认为“name”属性和“id”属性都适用于“getElementById()”。这实际上是一种相当愚蠢的行为,但它有益于您的代码,因为您不必将该字符串作为“id”值。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接