在提交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();
});
});
答案 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();
});