jQuery Forms - Ajax и обычный отправляют одну и ту же форму - PullRequest
1 голос
/ 11 июня 2009

У меня есть шаг подтверждения на одной из моих страниц.

Желаемое действие:

  • пользователь нажимает кнопку «отправить», и делается запрос AJAX, который выполняет соответствующее действие и возвращает диалоговое окно подтверждения

  • пользователь «подтверждает», а затем форма отправляется с использованием стандартного сообщения.

Итак, для первой части я в порядке, используя плагин формы jQuery:

$('form').ajaxForm(...options...);

Во второй части я хотел бы снова отправить форму, но не в формате AJAX. В основном я хочу сделать это:

$('form').submit();

И сделайте это в браузере. Проблема в том, что $ ('form'). Submit () просто запускает ajax submit.

Есть ли способ использовать форму для обеих целей?

Ответы [ 5 ]

2 голосов
/ 11 июня 2009
$('forms-submit-button').click()

.. это работает, для второй отправки?

:):)

0 голосов
/ 12 июня 2009
form onsubmit='ajaxCheck();'
...  <br />
/form

script

var ajaxCheck = function()
{
   //do check
   return confirm(); // if ok form submit normaly / if cancel form doesn't submit
}
/script

или что-то с флагом:

var flag = true;

var firstCheck = function()
{
     if( flag )
     {
       //do the ajax Call which will fire an event,
       // let's call it onData
       $.post(url,{param1:val1,...,paramN:valN},onData);
       return false;
     }
     return true;
}

var onData = function (data)
{
       flag = !confirm(...); 
      //if user click ok and try to re-submit the form
      //this time will just go
}

0 голосов
/ 11 июня 2009

Вы можете попытаться изменить значение в форме (например, скрытое значение равно 1), выполнить еще один ajax-запрос и, наконец, выполнить перенаправление Это не то же самое, но это должно работать. Обратите внимание, что очень странно представлять одни и те же данные дважды, хотя ..

0 голосов
/ 11 июня 2009

Сурья ответила как комментарий (если вы проверите этот вопрос еще раз, пожалуйста, опубликуйте ответ, чтобы я мог его пометить!)


$ ('forms-submit-button'). Click () .. это работает, для второй отправки?

0 голосов
/ 11 июня 2009

Разве вы не можете просто отменить регистрацию обработчика события отправки после того, как вы опубликовали результаты в ajax? Кстати, зачем вам дважды публиковать одни и те же данные? Если данные между постом Ajax и обычным не изменились, зачем нужен обычный?

...