jquery - 提交表单时进行多次 ajax 调用

标签 jquery html ajax

我有一个 HTML 表单,jQuery 捕获表单提交,但由于某种原因,浏览器将 Ajax 调用发送到后端两次。没有 javascript 错误,一切都按预期工作,包括后端返回预期的 json。

我发现其他帖子也有同样的问题,但没有回复对我有帮助。我在下面包含了我的代码。有没有人对为什么会发生这种情况有任何建议?

HTML:

<form action="/rating/create/<?php echo $jobId ?>" method="post" id="rating-form">
    <input type="hidden" id="Rating_jobId" name="Rating[jobId]" value="<?php echo $jobId ?>" />
    <input id="Rating_quality" type="slider" name="Rating[quality]" value="0" />
    <input id="Rating_service" type="slider" name="Rating[service]" value="0" />
    <input type="submit" name="submit" value="Submit">
</form>

javascript/jQuery:

    $('#rating-form').live('submit', function() {

        var action = $(this).attr('action');

        var dataset = {'Rating':{
                        'jobId':$('#Rating_jobId').val(),
                        'quality':$('#Rating_quality').val(),
                        'service':$('#Rating_service').val(),
                        },'ajax':'true'}

        d = new Date;
        dateCache = d.getTime();
        $.ajax({
            type: "POST",
            url: action +"?"+ dateCache,
            data: dataset,
            datatype: "application/json",
            cache: false
        }).done(function( response ) {

            if(response.success == 'true'){

                $('a.rating-'+ response.jobId).parent().remove();
                $.fancybox.close()

            } else {
                alert( response.error );
            }
         });

        return false;
    });

最佳答案

您可以通过禁用按钮来避免这种情况,当单击并完成 ajax 调用时,启用它。

关于jquery - 提交表单时进行多次 ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12275040/

相关文章:

javascript - 单独发送表单数据

javascript - AJAX 调用问题

javascript - jQuery:将对象 ["student.course.name"] 转换为对象 ['student' ] ['course' ] ['name' ]

jquery - 移动设备的时间选择器

php - 如何使用 php 播放存储在 mysql blob 中的 mp3 音频

javascript - 如何使用 jquery ajax 显示来自 aspx 页面的响应

javascript - 如何将 codpen JS 和 AJax 添加到我的一个 WordPress 页面

javascript - 选中另一个复选框时取消选中一个复选框

javascript - 将数据存储到元素中

jquery - 在列表中查找具有指定类的第 5 个元素并在 jQuery 中添加另一个类