Показать сообщение отдельно
  #1 (permalink)  
Старый 12.06.2011, 14:41
Новичок на форуме
Отправить личное сообщение для Rojas Посмотреть профиль Найти все сообщения от Rojas
 
Регистрация: 25.05.2011
Сообщений: 6

Передача формы в IE
Добрый день!
Столкнулся со следующей проблемой..

AJAX (хоть это и не важно).

Есть форма <form name="search" method="post"> с кучей полей, форма прекрасно работает, подгружая данные при изменении параметров по событию onchange..
Например,
<select id="region" size="1" name="region" onchange="check_form(this.form,a,b,c,d,e);">
<option value="0">Любой регион</option>
<option value="1">блабла</option>

То есть при изменении в скрипт отправляются данные формы и еще некоторые параметры.
Форма в этом случае передается в виде массива и в JS отлично обрабатывается. Как в ФФ, так и в ИЕ.

Код:
function check_form(category,form,type,dir,field)  {
  var check = new Array();
  var query = new Array();

  for(i=0;i<(form.length); i++) {

	if (form.elements[i].type == "checkbox") {
		  if (form.elements[i].checked)
		  {
		  	 check.push(form.elements[i].name)	;
		  }

	}
........
........
}
Вне формы есть несколько ссылок, которые при клике должны передавать в скрипт данные той же самый формы + свои какие-то параметры:
<a style="cursor:pointer;font-size:13px;" onclick="check_form(forms[\'search\'],e,f,g,h,i');">Клик!</a>


А здесь происходит ошибка:
В ФФ все работает прекрасно, a в ИЕ выдает:
"Ошибка: 'elements' - есть null или не является объектом"
Проверил отладчиком, и выяснилось, что в данном случае (в случае со ссылками) в ФФ форма, как ей и положено, передается в виде: [object HTMLFormElement], а в ИЕ в виде: [object HTMLCollection] и, соответственно, не парсится..

Как быть?
Есть какое-то решение, чтобы в ИЕ тоже передавался [object HTMLFormElement] или делать проверку в JS и если ИЕ - разбирать приходящий [object HTMLCollection] ?
Вот ссылка, если любопытно: http://autobb.spb.ru/index.php?option=com_ajaxauto
Ответить с цитированием