Ho letto i post qui, il sito Bootstrap e ho cercato su Google come matti, ma non riesco a trovare quello che sono sicuro sia una risposta facile ...
Ho un modale Bootstrap che apro da un link_to helper in questo modo:
<%= link_to "New Contact", new_contact_path, {remote: true, 'data-toggle' => 'modal', 'data-target' => "#myModal", class: "btn btn-primary"} %>
Nella mia ContactsController.create
azione, ho un codice che crea e Contact
poi passa a create.js.erb
. In create.js.erb
, ho qualche codice di gestione degli errori (un mix di ruby e javascript). Se tutto va bene, voglio chiudere il modale.
Questo è dove sto avendo problemi. Non riesco a respingere il modale quando tutto va bene.
Ci ho provato $('#myModal').modal('hide');
e questo non ha alcun effetto. Ho anche provato ciò $('#myModal').hide();
che provoca il rigetto del modale ma lascia lo sfondo.
Qualche guida su come chiudere il modale e / o respingere lo sfondo dall'interno create.js.erb
?
modificare
Ecco il markup per 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
. Ho riprovato $('myModal').modal('hide')
e ancora non va bene. HM. In termini di ciò che sto cercando di realizzare, penso che potrebbe essere stato errato utilizzare l'helper link_to. L'ho sostituito con: <a data-toggle="modal" href="#myModal" class="btn btn-primary">Add Contact</a>
poiché non ho davvero bisogno di una chiamata a new_contact_path
. Voglio solo che il modale si apra e poi gestisca l'input dell'utente. Grazie per il tempo dedicato a rispondere. Vedrò se non riesco a risolvere questo problema.
$('#myModal').modal('hide');
( #
manca un commento).
$('#myModal').modal('hide')
. J
$('#myModal').modal('hide');
è la sintassi corretta per chiudere / nascondere il modale con idmyModal
(è possibile verificarlo nella pagina della documentazione Bootstrap ). Sei sicuro di avere un elemento con questo ID nella tua pagina? Inoltre, cosa stai cercando di realizzare con questa chiamata? La tua attuale implementazione esegue una richiesta Ajaxnew_contact_path
e allo stesso tempo apre la modale con i contenuti di#myModal
- è questo quello che vuoi?