Ich habe die Beiträge hier gelesen, die Bootstrap-Site und wie verrückt gegoogelt - kann aber nicht finden, was ich sicher bin, ist eine einfache Antwort ...
Ich habe ein Bootstrap-Modal, das ich von einem link_to-Helfer wie folgt öffne:
<%= link_to "New Contact", new_contact_path, {remote: true, 'data-toggle' => 'modal', 'data-target' => "#myModal", class: "btn btn-primary"} %>
In meiner ContactsController.create
Aktion habe ich Code, der erstellt und Contact
dann an weitergegeben wird create.js.erb
. In habe create.js.erb
ich einen Fehlerbehandlungscode (eine Mischung aus Ruby und Javascript). Wenn alles gut geht, möchte ich das Modal schließen.
Hier habe ich Probleme. Ich kann das Modal nicht ablehnen, wenn alles gut geht.
Ich habe es versucht $('#myModal').modal('hide');
und das hat keine Wirkung. Ich habe auch versucht, $('#myModal').hide();
was dazu führt, dass das Modal entlassen wird, aber den Hintergrund verlässt.
Irgendwelche Anleitungen, wie man das Modal schließt und / oder den Hintergrund von innen entfernt create.js.erb
?
Bearbeiten
Hier ist das Markup für 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
. Ich habe es erneut versucht $('myModal').modal('hide')
und immer noch nicht gut. HM. In Bezug auf das, was ich erreichen möchte, denke ich, dass es möglicherweise falsch war, den link_to-Helfer zu verwenden. Ich habe dies ersetzt durch: <a data-toggle="modal" href="#myModal" class="btn btn-primary">Add Contact</a>
da ich keinen Anruf brauche new_contact_path
. Ich möchte nur, dass das Modal geöffnet wird und sich dann mit Benutzereingaben befasst. Vielen Dank, dass Sie sich die Zeit genommen haben, um zu antworten. Ich werde sehen, ob ich das nicht klären kann.
$('#myModal').modal('hide');
( #
in Ihrem Kommentar fehlt ein Fehler).
$('#myModal').modal('hide')
. J
$('#myModal').modal('hide');
ist die richtige Syntax zum Schließen / Ausblenden des Modals mit der IDmyModal
(Sie können dies auf der Bootstrap-Dokumentationsseite testen ). Sind Sie sicher, dass Sie ein Element mit dieser ID auf Ihrer Seite haben? Was möchten Sie mit diesem Aufruf erreichen? Ihre aktuelle Implementierung führt eine Ajax-Anfrage annew_contact_path
und öffnet gleichzeitig das Modal mit dem Inhalt von#myModal
- ist dies das, was Sie wollen?