从jQuery运行PHP脚本然后提交表单

时间:2018-06-12 08:09:22

标签: javascript php jquery ajax

在提交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 :(得分:1)

这将导致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();
    });
});

答案 1 :(得分:-1)

$('#form').on('beforeSubmit', function(e) {
   //your code
  return false;
}).on('submit', function(e){
    e.preventDefault();
});