Przeczytałem tutaj posty, stronę Bootstrap i Googled jak szalony - ale nie mogę znaleźć na pewno łatwej odpowiedzi ...
Mam modal Bootstrap, który otwieram z pomocnika link_to w następujący sposób:
<%= link_to "New Contact", new_contact_path, {remote: true, 'data-toggle' => 'modal', 'data-target' => "#myModal", class: "btn btn-primary"} %>
W mojej ContactsController.create
akcji mam kod, który tworzy, Contact
a następnie przekazuje do create.js.erb
. W create.js.erb
, mam trochę kodu obsługi błędów (mieszanka ruby i javascript). Jeśli wszystko pójdzie dobrze, chcę zamknąć modal.
To tutaj mam problemy. Nie mogę odrzucić modalu, kiedy wszystko idzie dobrze.
Próbowałem $('#myModal').modal('hide');
i to nie ma wpływu. Próbowałem również, $('#myModal').hide();
co powoduje, że modal odrzuca, ale pozostawia tło.
Wszelkie wskazówki, jak zamknąć modal i / lub odrzucić tło od wewnątrz create.js.erb
?
Edytować
Oto znacznik dla 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
. Spróbowałem ponownie $('myModal').modal('hide')
i nadal nie jestem dobry. HM Pod względem tego, co próbuję osiągnąć, myślę, że użycie pomocnika link_to mogło być niepoprawne. Zastąpiłem to: <a data-toggle="modal" href="#myModal" class="btn btn-primary">Add Contact</a>
ponieważ tak naprawdę nie potrzebuję dzwonić do new_contact_path
. Chcę tylko, aby modal się otworzył, a następnie zajął się wprowadzaniem przez użytkownika. Dzięki za poświęcenie czasu na odpowiedź. Zobaczę, czy nie mogę tego rozwiązać.
$('#myModal').modal('hide');
( #
brakuje komentarza).
$('#myModal').modal('hide')
. J
$('#myModal').modal('hide');
jest poprawną składnią do zamykania / ukrywania modalu o idmyModal
(możesz to przetestować na stronie dokumentacji Bootstrap ). Czy na pewno masz element o tym identyfikatorze na swojej stronie? Co również próbujesz osiągnąć dzięki temu połączeniu? Twoja obecna implementacja wykonuje żądanie Ajaxnew_contact_path
i jednocześnie otwiera modal z zawartością#myModal
- czy tego właśnie chcesz?