我已经阅读了这里的帖子、Bootstrap网站以及疯狂地搜索了谷歌,但是找不到我确定很简单的答案......
我有一个Bootstrap模态框,我通过link_to助手打开它,就像这样:
<%= link_to "New Contact", new_contact_path, {remote: true, 'data-toggle' => 'modal', 'data-target' => "#myModal", class: "btn btn-primary"} %>
在我的ContactsController.create
操作中,我有一些代码用于创建Contact
,然后传递给create.js.erb
。在create.js.erb
中,我有一些错误处理代码(混合了ruby和javascript)。如果一切顺利,我想关闭模态框。
这就是我遇到问题的地方。当一切顺利时,我似乎无法关闭模态框。
我尝试了 $('#myModal').modal('hide');
,但没有效果。我也尝试了 $('#myModal').hide();
,它会让模态框消失,但是背景仍然存在。
有关如何从create.js.erb
中关闭模态框和/或取消背景的任何指导吗?
编辑
这是myModal的标记:
<div class="modal hide" id="myModal" >
<div class="modal-header">
<a class="close" data-dismiss="modal">×</a>
<h3>Add Contact</h3>
<div id="errors_notification">
</div>
</div>
<div class="modal-body">
<%= form_for :contact, url: contacts_path, remote: true do |f| %>
<%= f.text_field :first_name, placeholder: "first name" %>
<%= f.text_field :last_name, placeholder: "last name" %>
<br>
<%= f.submit "Save", name: 'save', class: "btn btn-primary" %>
<a class="close btn" data-dismiss="modal">Cancel</a>
<% end %>
</div>
<div class="modal-footer">
</div>
</div>
$('#myModal').modal('hide');
是关闭/隐藏具有idmyModal
的模态框的正确语法(您可以在Bootstrap文档页面上测试此功能)。您确定页面上有此id的元素吗?另外,您想要通过此调用实现什么目的?您当前的实现会执行一个Ajax请求到new_contact_path
,同时打开具有#myModal
内容的模态框 - 这是您想要的吗? - Julian D.$('myModal').modal('hide')
,但仍然不行。哎呀。就我想要实现的目标而言,我认为使用link_to助手可能是不正确的。我已经用<a data-toggle="modal" href="#myModal" class="btn btn-primary">Add Contact</a>
替换了它,因为我不需要调用new_contact_path
。我只想打开模态框,然后处理用户输入。感谢您抽出时间回复。我会看看能否解决这个问题。 - jvillian$('#myModal').modal('hide');
(你的评论中缺少一个#
)。 - Julian D.$('#myModal').modal('hide')
。 - jvillian