Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery POST在表单提交时执行两次_Javascript_Jquery_Ajax_Http_Post - Fatal编程技术网

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')
选择的?它会将事件附加到指定事件的所有选定对象。