Eu li as postagens aqui, o site Bootstrap, e pesquisei no Google como um louco - mas não consigo encontrar o que tenho certeza de que é uma resposta fácil ...
Eu tenho um modal de Bootstrap que abro de um link_to auxiliar como este:
<%= link_to "New Contact", new_contact_path, {remote: true, 'data-toggle' => 'modal', 'data-target' => "#myModal", class: "btn btn-primary"} %>
Na minha ContactsController.create
ação, eu tenho um código que cria Contact
e passa para create.js.erb
. Em create.js.erb
, tenho algum código de manipulação de erros (uma mistura de ruby e javascript). Se tudo correr bem, quero fechar o modal.
É aqui que estou tendo problemas. Não consigo ignorar o modal quando tudo vai bem.
Eu tentei $('#myModal').modal('hide');
e isso não tem efeito. Eu também tentei o $('#myModal').hide();
que faz com que o modal seja descartado, mas deixa o pano de fundo.
Alguma orientação sobre como fechar o modal e / ou descartar o pano de fundo por dentro create.js.erb
?
Editar
Aqui está a marcação para o 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
. Tentei de novo $('myModal').modal('hide')
e ainda não é bom. HM. Em termos do que estou tentando realizar, acho que pode ter sido incorreto usar o link_to helper. Eu substituí isso por: <a data-toggle="modal" href="#myModal" class="btn btn-primary">Add Contact</a>
como eu realmente não preciso de uma ligação new_contact_path
. Eu só quero que o modal seja aberto e depois lide com a entrada do usuário. Obrigado por tomar o tempo para responder. Vou ver se não consigo resolver isso.
$('#myModal').modal('hide');
(há uma #
falta no seu comentário).
$('#myModal').modal('hide')
. J
$('#myModal').modal('hide');
é a sintaxe correta para fechar / ocultar o modal com o idmyModal
(você pode testá-lo na página de documentação do Bootstrap ). Tem certeza de que possui um elemento com esse ID na sua página? Além disso, o que você está tentando realizar com esta ligação? Sua implementação atual executa uma solicitação do Ajaxnew_contact_path
e ao mesmo tempo abre o modal com o conteúdo de#myModal
- é isso que você deseja?