2011-10-07 6 views
0

У меня есть форма, которую я хочу отправить на bodyLoad.Проблемы с firefox в документе.forms [0] .submit()

Я написал document.forms[0].submit(), который отлично работает с IE 9 и Chrome 14, но он не работает в FF 3.6.23.

Любые идеи? Это известная проблема с FF?

Я пробовал другие варианты, такие как document.form_name.submit() и document.getElementById('form_id').submit(), но ничего не работает с FF.

Ошибка я получаю в FF является

document.forms[0] неопределен

Это то, что я написал в представлении (CakePHP 1.2.6):

<?php $this->layout = 'blank'; ?> 

<?php e($form->create('Mymodel', array('name'=>'myform', 'url'=>'gohere'))); ?> 

<?php e($form->hidden('name', array('value'=>$name))); ?> 

<?php e($form->end()); ?> 

<script language="javascript"> 
document.forms[0].submit(); 
</script> 
+1

Пожалуйста, разместите свой код или ссылку на страницу. – Dennis

+0

добавил мой код выше .. спасибо – dev

ответ

1

Это не будет работать в Firefox, так как страница еще не загружена полностью.

Исключите

document.forms[0].submit();

и установить

<body onLoad="document.forms[0].submit();">

Будьте осторожны, чтобы не <form> на текущую страницу, так как это вызовет бесконечный цикл.

+0

Спасибо Деннис. Является ли это документированным где-то в FF. Я имею в виду, где я могу найти все такие проблемы с информацией для FF и т. Д.? – dev

+0

Я был неправ. Я изменил свой ответ, чтобы отобразить фактические факты. Для ошибок в Firefox зайдите в [Bugzilla] (https://bugzilla.mozilla.org/). – Dennis

+0

okie ... так что вещь setTimeout() работала, потому что форма загружалась к тому времени. Еще раз спасибо – dev

0

Код javascript может быть выполнен до фактической загрузки формы. Вот почему Firefox не может найти document.forms [0]. Перед выполнением javascript вы должны убедиться, что ваша страница готова. С JQuery вы делаете это с помощью $ (document) .ready()

+0

Спасибо WilQu. Я буду проверять, как это сделать без jQuery [потому что я не использую его]. – dev