Я читав публікації тут, на сайті 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
- це те, що ви хочете?