Saya menggunakan popup modal bootstrap twitter.
<div id="myModal" class="modal hide fade in">
<div class="modal-header">
<a class="close" data-dismiss="modal">×</a>
<h3>Header</h3>
</div>
<div class="modal-body"></div>
<div class="modal-footer">
<input type="submit" class="btn btn-success" value="Save"/>
</div>
</div>
Saya dapat memuat konten menggunakan ajax dengan a-element ini:
<a data-toggle="modal" data-target="#myModal" href="edit.aspx">Open modal</a>
Sekarang saya harus membuka modal yang sama tetapi menggunakan url yang berbeda. Saya menggunakan modal ini untuk mengedit entitas dari database saya. Jadi ketika saya mengklik edit pada entitas saya perlu memuat modal dengan ID.
<a data-toggle="modal" data-target="#myModal" href="edit.aspx?id=1">Open modal</a>
<a data-toggle="modal" data-target="#myModal" href="edit.aspx?id=2">Open modal</a>
<a data-toggle="modal" data-target="#myModal" href="edit.aspx?id=3">Open modal</a>
Jika saya mengklik tautan nomor 1, itu berfungsi dengan baik. Tetapi jika saya kemudian mengklik tautan nomor 2, konten modal sudah dimuat dan untuk itu akan menampilkan konten dari tautan nomor 1.
Bagaimana cara menyegarkan atau mereset konten yang dimuat ajax di popup modal bootstrap twitter?
javascript
twitter-bootstrap
stian.net
sumber
sumber
Jawaban:
Saya mengalami masalah yang sama, dan saya rasa cara melakukannya adalah dengan menghapus atribut data-toggle dan memiliki penangan khusus untuk tautan.
Sesuatu di baris:
Akan mencobanya nanti dan mengirim komentar.
sumber
Untuk membongkar data saat modal ditutup, Anda dapat menggunakan ini dengan Bootstrap 2.x:
Dan di Bootstrap 3 ( https://github.com/twbs/bootstrap/pull/7935#issuecomment-18513516 ):
sumber
Anda dapat memaksa Modal untuk menyegarkan popup dengan menambahkan baris ini di akhir metode sembunyikan plugin Modal (Jika Anda menggunakan bootstrap-transisi.js v2.1.1, itu harus di baris 836)
Atau dengan pendengar acara
sumber
load()
panggilan keluar dari konstruktor dan keshow()
, atau menambahkan metode ke plugin untuk secara manual memicu pemuatan ulangremote
. Pada saran kedua, saya hanya memberikan itu sebagai jawaban untuk pertanyaan yang secara eksplisit meminta untuk tidak melakukannya seperti yang disarankan @markz .Dengan Bootstrap 3 Anda dapat menggunakan event handler 'hidden.bs.modal' untuk menghapus data terkait modal, memaksa popup untuk memuat ulang lain kali:
sumber
Berdasarkan jawaban lain (terima kasih semuanya).
Saya perlu menyesuaikan kode agar berfungsi, karena hanya memanggil .html menghapus seluruh konten dan modal tidak akan dimuat dengan konten apa pun setelah saya melakukannya. Jadi saya hanya mencari area konten dari modal dan menerapkan pengaturan ulang HTML di sana.
Masih mungkin pergi dengan jawaban yang diterima karena saya mendapatkan beberapa lompatan jelek sebelum modal dimuat karena kontrolnya dengan Bootstrap.
sumber
Sedikit lebih padat daripada contoh yang diterima di atas. Ambil target dari data-target dari apa pun yang diklik saat ini dengan data-toggle = modal on. Ini membuatnya jadi Anda tidak perlu tahu apa id dari modal target itu, cukup gunakan kembali yang sama! lebih sedikit kode = menang! Anda juga dapat memodifikasi ini untuk memuat judul, label dan tombol untuk modal Anda jika Anda mau.
Contoh Tautan:
sumber
Saya membuat sedikit perubahan pada jawaban Softlion , jadi semua modal saya tidak akan disegarkan di hide. Modal dengan atribut data-refresh = 'true' hanya disegarkan, yang lain berfungsi seperti biasa. Ini adalah versi modifikasi.
Sekarang gunakan atribut seperti yang ditunjukkan di bawah ini,
Ini akan memastikan hanya modals dengan data-refresh = 'true' yang di-refresh. Dan saya juga menyetel ulang modal html karena nilai lama ditampilkan hingga nilai baru dimuat, membuat html kosong memperbaiki yang satu itu.
sumber
Ini adalah versi coffeescript yang cocok untuk saya.
sumber
Ini akan bekerja untuk semua versi twitterbootstrap
Kode Javascript:
tautan ke modal adalah
pop up modal
sumber
Saya juga terjebak pada masalah ini kemudian saya melihat bahwa id modalnya sama. Anda memerlukan ID modals yang berbeda jika Anda menginginkan banyak modals. Saya menggunakan id dinamis . Ini kode saya di
haml
:kamu bisa melakukan ini
dan tautan Anda ke modal akan menjadi
Saya harap ini akan berhasil untuk Anda.
sumber
Anda bisa mencoba ini:
sumber
Saya ingin konten yang dimuat AJAX dihapus ketika modal ditutup, jadi saya menyesuaikan baris yang disarankan oleh orang lain (sintaks skrip kopi):
sumber
var $ table = $ ('# myTable2');
$ table.bootstrapTable ('hancurkan');
Bekerja untuk saya
sumber
langkah 1: Buat pembungkus untuk modal yang dipanggil
clone-modal-wrapper
.langkah 2: Buat div kosong bernama
modal-wrapper
.Langkah 3: Salin elemen modal dari
clone-modal-wrapper
kemodal-wrapper
.langkah 4: Alihkan modal
modal-wrapper
.sumber