javascript - jQuery 表单被多次提交

标签 javascript jquery html forms

我在我的代码中做了一个简单的灯箱实现。单击#makePayment 链接将打开一个灯箱,该灯箱内有一个表单。当用户点击 # paymentDetailsConfrimLB 提交表单时,我刚刚显示了一条警报。

在我解释问题之前,请看一下我编写的代码:

       $("#makePayment").click(function() { 
            $("body").addClass("modalPrint");
            var lb = new LightBox("paymentDetailsLB", "675", "500");
            lb.htmlObjRef.style.height = "auto";
            lb.show();
            $("#paymentDetailsCloseLB, .hideBox").click(function() {
                $("body").removeClass("modalPrint");
                lb.hide();
            });//paymentDetailsCloseLB
            $("#paymentDetailsConfrimLB").click(function( event ) {
               alert('form submission happened.');
               event.preventDefault();
               return false;
            });//paymentDetailsConfrimLB
          return false;
        });//makePayment

问题是,当我第一次加载页面并打开灯箱并单击提交按钮时,警报会显示一次(应该如此),但是如果我关闭灯箱,重新打开它,然后提交表单提交两次并且警报显示两次。同样,如果我再次关闭并重新打开灯箱,则在提交表单时,警报会显示 3 次,然后继续这样。

知道如何解决这个问题吗?

最佳答案

除了 Kavin 的方法之外,另一种解决方案也对我有用。我刚刚在 event.preventDefault() 方法之后立即添加了这一行:

  event.stopImmediatePropagation()

它解决了这个问题。

关于javascript - jQuery 表单被多次提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36488053/

相关文章:

php - Tag-it jQuery 插件表单输入数组的问题

javascript - 从 Chrome 开发控制台将所有 anchor 标记引用导出到格式化的 CSV 文件

javascript - 如何使用 jQuery 在链接标记内添加跨度?

javascript - 在 AngularJs SPA 中,如何从 URL 中删除 ".html"

javascript - jQuery-File-Upload - 仅显示以特定文件名开头的文件

javascript - 复制 HTML 或使用 JS 移动元素以实现响应式站点

html - 如何将我的页脚推到右栏菜单的下方

javascript - axios 并发请求数 : any way to get the results from the successful requests even if some have failed?

javascript - 悬停从 jquery 到 Backbone 代码

html - 为什么父容器中的内容会影响父容器的位置?