Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Не отправялется форма средствами JS (https://javascript.ru/forum/css-html/28257-ne-otpravyaletsya-forma-sredstvami-js.html)

kapman 13.05.2012 02:33

Не отправялется форма средствами JS
 
Ну что-то вообще засада.......

Пишу такой код для формы:

Код:

<form id="sendform" name="postform" method="post" action="{S_POST_ACTION}" onsubmit="return FormSubmit()">
....

Пишу такой код для скрипта:

Код:

   function FormSubmit()
    {
       setTimeout(function() {document.getElementById('sendform').submit();}, 8000);
        return false;
    }

В итоге функция как и полагается срабатывает через 8 секунд, но вместо отправки данных форма просто обновляется! Я шоке!!! Что я уже только не перепробовал... И главное, в firebug'e всё ровно... Говорю, форма нормально отправляется только если не юзаешь js для сабмита. Еще отправляется вот так
Код:

   function FormSubmit()
    {
       if ( !confirm( "Отправить форму?" ) ) {
        return false;
       }
    }

Т.е. здесь мы тоже особо не вмешиваемся в процесс отправки, а только делаем запрос на подтверждение...и сразу всё тоже работает!
Я уже начинаю подозревать, что в PHPBB форуме какая-то защита стоит от автосабмита... не зря там в форме есть скрытые поля типа lastclick. В общем, даже не знаю... :wacko:

devote 13.05.2012 04:46

kapman,
вы пытаетесь рекурсивно вызывать одну и туже функцию, запуская
document.getElementById('sendform').submit();
вы снова вызываете все тот же FormSubmit()

Kolyaj 13.05.2012 10:42

devote,
метод submit не генерирует событие onsubmit.


Цитата:

Сообщение от kapman
но вместо отправки данных форма просто обновляется!

Что значит "форма просто обновляется"?

devote 13.05.2012 12:20

Цитата:

Сообщение от Kolyaj
метод submit не генерирует событие onsubmit.

да вы правы, я попутал submit() c onsubmit()

kapman 13.05.2012 13:18

Цитата:

Сообщение от Kolyaj (Сообщение 174125)
devote,
метод submit не генерирует событие onsubmit.



Что значит "форма просто обновляется"?


Ну поля в форме очищаются и всё. Типа отправилось, но естественно никакой отправки и не было, пичем в PHPBB-форумах сразу генерируется сообщение об успешной отправки, а его нет (и нового поста тоже). Не отправляется... Firebug молчит... В общем, отправляется только при обычном нажатии кнопки Отправить, а через document.getElementById('sendform').submit(); или document.forms['form_name'].submit(); или document.forms[0].submit(); ни в какую! Обновляются только поля и всё... :blink:

Kolyaj 13.05.2012 13:36

Возможно не ту форму отправляете. Возможно серверный скрипт требует именно нажатия на кнопку (тогда имя и значение кнопки уходят на сервер).

kapman 13.05.2012 18:00

Меня терзают смутные сомнения насчет некоторых скрытых инпутов:

Код:

<input type="hidden" name="creation_time" value="1336915640" />
<input type="hidden" name="form_token" value="22b09178c8706196a990c6fe0cea8bbc258fa6dd" />

  <fieldset class="submit-buttons">
         
          <input type="hidden" name="lastclick" value="1336915639" />
          <input type="submit" accesskey="k" tabindex="7" name="save" value="Draft" class="button2" />&nbsp;
          <input type="submit" tabindex="5" name="preview" value="Preview" class="button1" onclick="document.getElementById('postform').action += '#preview';" />&nbsp;
          <input type="submit" accesskey="s" tabindex="6" name="post" id="sendp" value="Submit" class="button1 default-submit-action" />&nbsp;

  </fieldset>

Может быть это правда защита у PHPBB форумов?? Какие-то поля не передаются? Если да, то как обойти?


Часовой пояс GMT +3, время: 17:48.