Запустите скрипт PHP из jQuery и отправьте форму - PullRequest
0 голосов
/ 12 июня 2018

При отправке формы consent мне нужно запустить скрипт PHP.После запуска скрипта я хочу отправить форму consent как обычно.

Я думал, что что-то похожее на следующее будет работать:

$(document).on('submit', 'form#consent', function(e) {
  e.preventDefault();
  $.get('http://www.domain.co.uk/test.php', function() {
    console.log('returned');
    $('form#consent').submit();
  });
});

Ответы [ 2 ]

0 голосов
/ 12 июня 2018
$('#form').on('beforeSubmit', function(e) {
   //your code
  return false;
}).on('submit', function(e){
    e.preventDefault();
});
0 голосов
/ 12 июня 2018

Это приведет к циклу submit событий, потому что ваш прослушиватель событий будет запускаться снова и снова.Вместо этого используйте one, чтобы прослушать только первую отправку:

$('form#consent').one('submit', function(e) {
    e.preventDefault();
    $.get('http://www.domain.co.uk/test.php', function() {
        console.log('returned');
        $('form#consent').submit();
    });
    return false;
});

Еще одна идея, чтобы предотвратить условия гонки и другие проблемы, не используйте кнопку submit вформа.Просто используйте обычную кнопку и позвольте js сделать submit.

// <button class="send">submit form</button>
$('form#consent button.send').one('click', function() {
    $.get('http://www.domain.co.uk/test.php', function() {
        $('form#consent').submit();
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...