JQuery вызов пользовательской формы отправить, затем нормально - PullRequest
0 голосов
/ 21 ноября 2011

Я хочу прикрепить обработчик submit () к форме для запуска ajax-запроса, и когда он возвращается, форма отправляет себя нормально. Это возможно? $ ('# myForm'). submit () просто рекурсивно вызовет ту же функцию.

Я бы предпочел не прикреплять обработчик событий к нажатию кнопки отправки, потому что не все пользователи отправляют формы с помощью мыши. Многие, как и я, просто используют ключ возврата.

Ответы [ 3 ]

6 голосов
/ 21 ноября 2011

Попробуй это. В приведенном ниже коде я освобождаю обработчик события отправки формы в обработчике успеха ajax, а затем отправляю форму.

$('form').bind('submit', function(){

    //Do ajax call here
    $.ajax({
       url: "url",
       success: function(){
          //On success do what you want to do 
          //and then ubind the submit event handler and submit the form

          $('form').unbind('submit').submit();
       }
    });

    //Prevent default form submit
    return false;

});
1 голос
/ 21 ноября 2011

Это должно работать для вас:

$('form').submit(function(e) {
    e.preventDefault();
    var that = this;
    $.post('url', function() {
        that.submit();
    });
});

e.preventDefault() останавливает отправку формы по умолчанию.Затем вы можете вызвать .submit() для элемента dom, чтобы выполнить отправку, которая не перехватывается обработчиком jQuery.

0 голосов
/ 21 ноября 2011

У вас может быть переменная, которая указывает, был ли получен ответ ajax или нет.Это может быть немного менее изящно, чем отмена привязки обработчика события submit, но это другая идея.

var ajaxResponse = false;

$('form').submit(function() {
    var form = $(this);
    if( ajaxResponse == false ){
      $.post('url', function() {
          ajaxResponse = true;
          // Do something
          form.submit();
      });
      return false;
    }else{
      return true;
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...