Bootstrap模式没有关闭表单提交 - Rails

时间:2014-05-12 17:46:43

标签: javascript ruby-on-rails twitter-bootstrap

我认为我有这种模式:

<div class="modal fade" id="addListItem" tableindex="-1" role="dialog" aria-labelledby="addListItem" aria-hidden="true">
  ......
  ......
      <div class="modal-body">
         <%= form_for @list_item, :remote => true, :html => {:id => "addForm"} do |f| %>
             <%= f.hidden_field :upc, :value => @item.upc %>
             <%= f.hidden_field :inventory_item_id, :id => "inventoryID", :value => "" %>
             <%= f.submit("Add It!", class: "btn", :id => "addSubmit") %>
         <% end %>
      </div>
  ......
  ......
</div>

因为表单是远程的,我希望这个模式隐藏在表单提交上。我是这样做的:

$('#addForm').submit(function() {
    $('#addListItem').modal('hide');
});

目前正在发生的事情令我感到困惑。当我点击提交时,表单会远程提交并且模态保持打开状态。当我第二次点击提交按钮时,表单再次提交,模式隐藏。为什么这个模态不会隐藏在第一次提交中?提前谢谢!

2 个答案:

答案 0 :(得分:9)

之前我遇到过类似的问题,我解决这个问题的方法是在提交按钮中添加点击事件:

$('#addSubmit').click ->
   $('#addListItem').modal('hide');

希望这有帮助!

答案 1 :(得分:0)

试试这个:

$(modal).on("click", 'input[type="submit"]', (e) -> modal.modal('hide')