2009-06-11 1 views
1

У меня есть шаг подтверждения на одной из моих страниц.jQuery Forms - Ajax и обычный отправить ту же форму

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

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

  • пользователя «подтверждает», а затем форма отправлена используя стандартную почту.

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

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

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

$('form').submit(); 

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

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

+1

$ ('форм-Submit-кнопку') нажмите() ..does эту работу, для второго. Отправить? – Surya

+0

да что работает ... интересно, но работает, и я счастлив. – anonymous

ответ

2
$('forms-submit-button').click() 

.. это работает, для второго подать?

:) :)

0

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

+0

два требования: 1) шаг подтверждения нужен 2) я должен использовать существующую БД Так я делаю 99% той же работы в обоих запросах, но только «реальный» запрос сохраняется его базы данных. В идеале я бы сохранил работу с первого запроса, а второй запрос просто должен был ссылаться на эту сохраненную работу, но: а) я не хочу полагаться на сеанс и б) я не могу создать новую таблицу для сохранения запрос. – anonymous

0

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

+0

Его шаг подтверждения ... он делает все, кроме как сохранить его в базе данных, поэтому его точные данные. – anonymous

+0

, и я до сих пор не понимаю, почему вы должны публиковать дважды ... – Keeper

0

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


$ ('forms-submit-button'). click() .. это работает, для второго submit?

0
 
form onsubmit='ajaxCheck();' 
... 
/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 
}