Saya sudah membaca posting di sini, situs Bootstrap, dan di-Google-kan dengan gila - tetapi tidak dapat menemukan jawaban yang saya yakin mudah ...
Saya memiliki modal Bootstrap yang saya buka dari pembantu link_to seperti ini:
<%= link_to "New Contact", new_contact_path, {remote: true, 'data-toggle' => 'modal', 'data-target' => "#myModal", class: "btn btn-primary"} %>
Dalam ContactsController.create
tindakan saya , saya memiliki kode yang menciptakan Contact
lalu meneruskan ke create.js.erb
. Dalam create.js.erb
, saya memiliki beberapa kode penanganan kesalahan (campuran ruby dan javascript). Jika semuanya berjalan dengan baik, saya ingin menutup modalnya.
Di sinilah saya mengalami masalah. Sepertinya saya tidak bisa mengabaikan modal ketika semuanya berjalan dengan baik.
Saya sudah mencoba $('#myModal').modal('hide');
dan ini tidak berpengaruh. Saya juga sudah mencoba $('#myModal').hide();
yang menyebabkan modal untuk mengabaikan tetapi meninggalkan latar belakang.
Adakah panduan tentang cara menutup modal dan / atau mengabaikan latar belakang dari dalam create.js.erb
?
Edit
Inilah markup untuk 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
. Saya mencoba ulang $('myModal').modal('hide')
dan masih tidak baik. HM. Dalam hal apa yang saya coba selesaikan, saya pikir mungkin salah menggunakan bantuan link_to. Saya telah mengganti ini dengan: <a data-toggle="modal" href="#myModal" class="btn btn-primary">Add Contact</a>
karena saya tidak benar-benar perlu menelepon new_contact_path
. Saya hanya ingin modal terbuka dan kemudian berurusan dengan input pengguna. Terima kasih telah meluangkan waktu untuk merespons. Saya akan melihat apakah saya tidak bisa menyelesaikannya.
$('#myModal').modal('hide');
(ada yang #
hilang dalam komentar Anda).
$('#myModal').modal('hide')
. J
$('#myModal').modal('hide');
adalah sintaks yang benar untuk menutup / menyembunyikan modal dengan idmyModal
(Anda dapat menguji ini pada halaman dokumentasi Bootstrap ). Apakah Anda yakin memiliki elemen dengan id ini di halaman Anda? Juga, apa yang ingin Anda capai dengan panggilan ini? Implementasi Anda saat ini melakukan permintaan Ajax untuknew_contact_path
dan pada saat yang sama membuka modal dengan konten#myModal
- apakah ini yang Anda inginkan?