He leído las publicaciones aquí, el sitio Bootstrap, y busqué en Google como loco, pero no puedo encontrar lo que estoy seguro es una respuesta fácil ...
Tengo un modal de Bootstrap que abro desde un link_to helper como este:
<%= link_to "New Contact", new_contact_path, {remote: true, 'data-toggle' => 'modal', 'data-target' => "#myModal", class: "btn btn-primary"} %>
En mi ContactsController.create
acción, tengo un código que crea y Contact
luego pasa a create.js.erb
. En create.js.erb
, tengo un código de manejo de errores (una combinación de ruby y javascript). Si todo va bien, quiero cerrar el modal.
Aquí es donde estoy teniendo problemas. Parece que no puedo descartar el modal cuando todo va bien.
Lo he intentado $('#myModal').modal('hide');
y esto no tiene ningún efecto. También probé $('#myModal').hide();
qué hace que el modal se descarte pero deja el telón de fondo.
¿Alguna guía sobre cómo cerrar el modal y / o descartar el telón de fondo desde dentro create.js.erb
?
Editar
Aquí está el marcado para 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
. Lo volví a intentar $('myModal').modal('hide')
y aún no sirve. HM En términos de lo que estoy tratando de lograr, creo que puede haber sido incorrecto usar el link_to ayudante. He reemplazado esto con: <a data-toggle="modal" href="#myModal" class="btn btn-primary">Add Contact</a>
ya que realmente no necesito una llamada new_contact_path
. Solo quiero que el modal se abra y luego trate con la entrada del usuario. Gracias por tomarse el tiempo de responder. Veré si no puedo resolver esto.
$('#myModal').modal('hide');
( #
falta un comentario).
$('#myModal').modal('hide')
. J
$('#myModal').modal('hide');
es la sintaxis correcta para cerrar / ocultar el modal con idmyModal
(puede probar esto en la página de documentación de Bootstrap ). ¿Estás seguro de que tienes un elemento con esta identificación en tu página? Además, ¿qué estás tratando de lograr con esta llamada? Su implementación actual realiza una solicitud de Ajaxnew_contact_path
y al mismo tiempo abre el modal con el contenido de#myModal
: ¿es esto lo que desea?