首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery AJAX表单提交两次

jQuery AJAX表单提交两次
EN

Stack Overflow用户
提问于 2013-11-25 14:24:21
回答 10查看 65.7K关注 0票数 52

我有一个通过jQuery捕获并通过AJAX发送的表单。我的问题是,每次刷新页面时,表单都提交一次以上。

我试图取消提交按钮,但然后表单通常在第一次提交后发布。如能提供任何帮助,将不胜感激。

代码语言:javascript
复制
$('#exportForm').submit(function() {
  $.ajax({
    type: "POST",
    url: $(this).attr('action'),
    data: $(this).serialize(),
    success: function(response) {
      $('#exportForm').unbind('submit');
      console.log(response);
    }
  });
  return false;
});
EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2013-11-25 14:29:42

很可能是使用buttonsubmit来触发ajax事件。试试这个:

代码语言:javascript
复制
$('#exportForm').submit(function(e){
        e.preventDefault();
        $.ajax({
            type: "POST",
            url: $(this).attr( 'action' ),
            data: $(this).serialize(),
            success: function( response ) {
                console.log( response );
            }
        });

        return false;
    });
票数 36
EN

Stack Overflow用户

发布于 2014-10-08 16:36:21

除了调用preventDefault之外,还在事件中调用stopImmediatePropagation

代码语言:javascript
复制
$('#exportForm').submit(function(e){
    e.preventDefault();
    e.stopImmediatePropagation();
    $.ajax({
        type: "POST",
        url: $(this).attr( 'action' ),
        data: $(this).serialize(),
        success: function( response ) {
            console.log( response );
        }
    });

    return false;
});
票数 125
EN

Stack Overflow用户

发布于 2015-05-03 02:17:52

如果您使用某种验证(例如jQuery验证),表单会提交两次,因为除了您自己编写的$('#exportForm').submit之外,验证插件在成功验证所有字段之后也会提交表单。

注意:如果您正在使用jQuery验证,请避免使用.submit()。相反,使用submitHandler

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20195483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档