Я читав публікації тут, на сайті Bootstrap, і в Google, як з розуму, - але не можу знайти те, на що я впевнений, що це легка відповідь ...
У мене є модаль Bootstrap, який я відкриваю з помічника link_to, як це:
<%= link_to "New Contact", new_contact_path, {remote: true, 'data-toggle' => 'modal', 'data-target' => "#myModal", class: "btn btn-primary"} %>
У своїй ContactsController.createдії у мене є код, який створюється, Contactа потім переходить на create.js.erb. У create.js.erbмене є деякий код обробки помилок (суміш рубіну та javascript). Якщо все піде добре, я хочу закрити модальний.
Тут я маю проблеми. Я, здається, не можу відмовитись від модалів, коли все йде добре.
Я пробував, $('#myModal').modal('hide');і це не має ефекту. Я також спробував, $('#myModal').hide();що змушує модалів відмовитися, але залишає задник.
Будь-які вказівки щодо того, як закрити модальний режим та / або відхилити тло зсередини create.js.erb?
Редагувати
Ось розмітка для 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. Я повторно спробував $('myModal').modal('hide')і досі нічого поганого. НМ. Щодо того, що я намагаюся досягти, я думаю, що, можливо, було неправильним використання помічника link_to. Я замінив це на: <a data-toggle="modal" href="#myModal" class="btn btn-primary">Add Contact</a>оскільки мені не дуже потрібен дзвінок new_contact_path. Я просто хочу, щоб модал відкрився і потім займався введенням користувача. Дякуємо, що знайшли час для відповіді. Я побачу, чи не можу це розібратися.
$('#myModal').modal('hide');( #у вашому коментарі цього немає).
$('#myModal').modal('hide'). J
$('#myModal').modal('hide');це правильний синтаксис для закриття / приховування модалу з idmyModal(ви можете перевірити це на сторінці документації Bootstrap ). Ви впевнені, що на вашій сторінці є елемент з цим ідентифікатором? Крім того, що ви намагаєтесь досягти за допомогою цього дзвінка? Ваша поточна реалізація виконує запит Ajaxnew_contact_pathі одночасно відкриває модальний вміст із вмістом#myModal- це те, що ви хочете?