Событие подачи не всегда работает

Следующий код будет работать во всех моих тестах и ​​работает большую часть времени, но не для всех посетителей.

jQuery(document).ready(function(){
  jQuery('#formane').on('submit', function(){
    jQuery.post('/storeit.php', jQuery(this).serialize(), function(){
      console.log('success');
    }).fail(function(){
      console.log('error');
    });
  });
});

Страница storit.php берет данные и помещает их в базу данных, прежде чем форма отправляет данные в salesforce. Я попытался полностью удалить jQuery, используя onsubmit с функцией javascript.

Я получаю около 15% форм сообщений, которые просто не запускают код. Они варьируются в браузере, ОС и устройстве.

1 ответ

Решение

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

jQuery(document).ready(function(){
  jQuery('#formane').on('submit', function(e){
    e.preventDefault();
    jQuery.post('/storeit.php', jQuery(this).serialize(), function(){
      console.log('success');
      $("#formane")[0].submit();
    }).fail(function(){
      console.log('error');
    });
  });
});
Другие вопросы по тегам