通过JS防止双表单提交,但是事件没有绑定到模态元素

时间:2014-06-12 20:49:53

标签: javascript jquery ruby-on-rails

我想阻止用户两次提交表单(添加到购物车)。我遇到的问题是我的表单是一个模态(Twitter Bootstrap)。

cart.js.coffee

preventMultipleSubmit = ->
  $(".edit_offer input[type=\"submit\"]").on "click", () ->
    $(this).attr "disabled", "disabled"

$(document).ready(preventMultipleSubmit)
$(document).on("page:load", preventMultipleSubmit)

如果我不在模式中加载表单,则上面的代码有效。 如何将点击事件附加到模式中存在的提交按钮?如果重要的话,我也在使用Turbolinks。

1 个答案:

答案 0 :(得分:0)

想出来,不是那么优雅,但它有效。如果你们知道如何简化这个,请告诉我们:

preventMultipleSubmit = ->
  $(".edit_offer").on "submit", () ->
     $(this).find("input[type=\"submit\"]").attr "disabled", "disabled"

  $("#offerModal").on "shown.bs.modal", ->
    $(".edit_offer").on "submit", () ->
      $(this).find("input[type=\"submit\"]").attr "disabled", "disabled"