Обработчик jquery submit с jquery validate и jquery ajax-формой вызывается только каждый второй раз - PullRequest
1 голос
/ 03 марта 2012

У меня есть следующий код

jQuery(function() {
      jQuery("#newForm").validate({
          rules: { },
          submitHandler: function(form) {
              alert("Submitting")
              jQuery("#submitButton").attr('disabled', true)
              jQuery("#sendWrapper").append('<span><img src="{{ STATIC_URL }}img/loading.gif"></span>')
              jQuery(form).ajaxSubmit({
                  success: afterFormSubmit,
                  target: "#ajaxwrapper"
              });
          }
      });
});

Я обнаружил, что обработчик вызывается только каждый первый, третий, пятый, седьмой раз, когда нажимается кнопка отправки (ответ - это всего лишь HTML-код формы с ошибками и т. Д.).

Однако изменение функции на обработчик onclick работает каждый раз.

1 Ответ

2 голосов
/ 03 марта 2012

Это должно работать нормально:

jQuery(function() {
      jQuery("#newForm").validate({
          rules: {},
          submitHandler: function(form) {
              alert("Submitting")
              jQuery("#submitButton").attr('disabled', true)
              jQuery("#sendWrapper").append('<span><img src="{{ STATIC_URL }}img/loading.gif"></span>')
              $.ajax({
                  cache: false,
                  type: 'POST',
                  data: ("#newForm").serialize(),
                  url : '/ your-url-address-to-post-form /'
                  success: function (html) {
                      alert('done');
                  },
                  error: function(data, textStatus, jqXHR) {
                      alert('error')
                  }
              });
          }
      });
});​
...