Баг FireFox при работе с коллекцией форм...

Allan Stark

Новичок
Баг FireFox при работе с коллекцией форм...

Сори что не совсем насчет РНР, хотя столкнулся с проблемой именно при написании скрипта.

FireFox 1.0.7, т.е. последний.

В теле сценария есть генерация некой HTML таблицы, каждая строча в которой - несколько input-полей и по сути есть отдельная форма с именем вида Form_x, где х - генерируется как число при обработке сценария. Там же (в каждой строчке) присутствует и несколько кнопок (Удалить, редактировать и прочая). Так вот, на одну из них в обработчик onclick повесил ф-цию, которая должна была делать кое-какие мелкие действия, а потом вызывать метод submit() для указанной формы (имя формы определяется как
FormName = "FRM_Show" + FormUserID;

где FormUserID - числовой параметр, передаваемый в ф-цию.

Ну а теперь внимание:

document.forms.item(FormName).submit();

при проверке на работоспособность в FireFox в вызываемый скрипт упрямо передавались данные первого ("0"-го) элемента коллекции форм, т.е. интерпретатору ява-скрипта в Файерфоксе попросту плевать на текстовый параметр, передаваемый к нему. Если передать число (индекс элемента коллекции) - то все ОК. Попытки принудительного приведения параметров к строки или попросту конструкция вида
document.forms.item("FRM_Show2").submit();
попросту игнорируется, в консоль ява-скрипта ничего не выводится, просмотр сырого кода сгенерированной страницы подтверждает, что FRM_Show2 таки есть, но в скрипт упрямо шлется видимо
document.forms.item(0).submit();

Кто-то может прокомментировать, или же это явный баг разработчиков ?

P.S. В Эксплорере и Опере все нормально...
 

kruglov

Новичок
Что еще за item?

document[FormName].submit();

или для любителей писать длинно

document.forms[FormName].submit();
 

Allan Stark

Новичок
Мда... Я в экстазе...

Есть книга - "JavaScript в WEB-дизайне" - Владимир Дронов, 2001 г.
По ней учился. Вот в ней именно такой способ "достучаться" до коллекций и был описан. И еще строгое предупреждение, дословно (с. 196):
"Заметьте, что мы указываем индекс элемента коллекции не в квадратных, а в круглых скобках... Имя этого метода (item) можно вообще опускать... Но вы знаете что это не массив (хотя по сути это он и есть), а коллекция. Метод поддерживается и IE и NN..."

Мораль: меньше теоретики, больше слушать советы бывалых...
 

Allan Stark

Новичок
Но все таки наиболее красивое решение задачи:

<input type='button' onClick='this.form.submit()' ...>

;-)
 
Сверху