jQuery POST在表单提交上执行两次

时间:2015-04-09 13:03:36

标签: javascript jquery ajax http post

在下面的代码中,$('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'});
                });
            });
        });
    }
});

0 个答案:

没有答案