Почему document.getElementById для скрытого ввода работает в IE, а не в Chrome? - PullRequest
4 голосов
/ 10 июня 2011

У меня проблема с этой частью кода 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 ]

5 голосов
/ 10 июня 2011

Ваш ввод имеет имя из itempage, а не id .

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

Использование имен-идентификаторов поддерживается тольков IE5-7 !

4 голосов
/ 10 июня 2011

Функция getElementById выполняет поиск по атрибуту «id», а не «name».

Так что замените itempage на item, и все готово.

3 голосов
/ 25 июля 2012

Используйте id вместо name:

document.getElementById('item').value = xpage;
2 голосов
/ 10 июня 2011

Вы установили имя, но не идентификатор скрытого элемента в "itempage"

1 голос
/ 10 июня 2011

Это работает в IE, потому что IE рассматривает атрибут name, а также атрибут id для getElementById () Это на самом деле довольно глупое поведение, но оно приносит пользу вашему коду, потому что у вас нет этой строки в качестве значения "id".

...