Добрый день!
Столкнулся со следующей проблемой..
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