Javascript jQuery POST在表单提交时执行两次
在下面的代码中,Javascript jQuery POST在表单提交时执行两次,javascript,jquery,ajax,http,post,Javascript,Jquery,Ajax,Http,Post,在下面的代码中,$('form').one('submit',…只执行一次,但是从网络日志中可以看到,$.post…位被调用了两次 此外,回调函数也没有被调用。我不知道为什么会发生这种情况,也不知道如何修复它,控制台中没有报告错误 $('form').one('submit', function(e) { $('form').off(); e.preventDefault(); if(!$('button').prop('disabled')) { $(
$('form').one('submit',…
只执行一次,但是从网络日志中可以看到,$.post…
位被调用了两次
此外,回调函数也没有被调用。我不知道为什么会发生这种情况,也不知道如何修复它,控制台中没有报告错误
$('form').one('submit', function(e) {
$('form').off();
e.preventDefault();
if(!$('button').prop('disabled')) {
$('button').addClass('loading');
$('button i').css({opacity: '0'});
$('button span').css({opacity: '0'}).one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function() {
$('button i, button span').hide();
$('button').prop('disabled', true).css({backgroundColor: '#f5d76e', color: '#2d2d2d', borderColor: '#f5d76e'});
$('button svg').css({display: 'block', opacity: '1'});
$.post('submit.php', {name: $('#name').val(), email: $('#email').val(), message: $('#message').val()}, function(data) {
console.log('Hi');
$('button svg').css({opacity: '0'}).one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function() {
$(this).hide();
$('button i').removeClass('fa-paper-plane').addClass((data.success) ? 'fa-check' : 'fa-exclamation-triangle').css({display: 'block', opacity: '1', marginRight: '0'});
});
});
});
}
});
可能在两个位置调用同一个函数。你是说表单提交函数吗?如果是这样,它只能调用一次,因为它使用了
.one()
。是的,但是你有两个嵌套的one()
。我本能地说它是相关的。试着在.one()之前添加.unbind()
。很有趣,但我无法想象这种情况,jQuery文档中没有提到它。有多少对象是$('button I,button span')
选择的?它会将事件附加到指定事件的所有选定对象。