Categories: JavascriptTips Trik

Tombol back tutup modal bootstrap tanpa kembali ke halaman sebelumnya

Bismillaahirrohmaanirrohiim…

Jika kita membuat aplikasi web base menggunakan bootstrap, saat user membuka modal, kadangkala mereka lupa kalo tombol back akan kembali ke halaman sebelumnya, padahal inginnya hanya menutup modal saja.

Nah kode untuk menangani aksi back user jika modal terbuka adalah sebagai berikut:

// Simpan modal yang sedang terbuka
        let modalOpened = false;
        let activeModalId = null;

        // Saat modal ditampilkan
        $(document).on('shown.bs.modal', '.modal', function () {
            modalOpened = true;
            activeModalId = $(this).attr('id');

            // Tambahkan entri palsu ke history
            history.pushState({ modalOpen: true }, '');
        });
        // Saat modal ditutup
        $(document).on('hidden.bs.modal', '.modal', function () {
            modalOpened = false;
            activeModalId = null;
        });

        // Deteksi tombol back
        window.addEventListener('popstate', function (event) {
            if (modalOpened && activeModalId) {
            // Tutup modal yang sedang terbuka
            $('#' + activeModalId).modal('hide');

            // Tambahkan ulang state agar tidak keluar halaman
            history.pushState({ modalOpen: true }, '');
            }
        });

fungsi ini cukup ditaruh difooter, otomatis setiap ada modal terbuka disemua halaman, jika tombol back ditekan akan menutup modal tersebut tanpa kembali ke halaman sebelumnya.

Syaratnya:

  • Bootstrap 5.3
  • Jquery
  • modal harus punya ID

Demikian semoga bermanfaat.

Bagikan
rasupe

Recent Posts

Kode css yang berguna

Bismillaahirrohmaanirrohiim... Berikut ini kumpulan css yang berguna, untuk mengingat saja. Input atau button delay saat…

1 week ago

Grouping warna pada tabel dengan PHP

Bismillaahirrohmaanirrohiim... Berikut ini cara grouping warna baris pada tabel dengan PHP, dimana jika ada kode…

2 weeks ago

CMS Website Desain Interior – PHP MySQL

CMS (Content Management System) Web untuk Desain Interior adalah solusi lengkap untuk mempresentasikan bisnis desain…

4 weeks ago

Source code Template website sekolah dengan react js

Bismillaahirrohmaanirrohiim... Berikut ini source code yang dapat dimodifikasi untuk membuat front end website sekolah dengan…

2 months ago

Subdomain pada cyberpanel tidak dapat diakses

Bismillaahirrohmaanirrohiim... Jika domain dan sub domainnya berada dalam satu vps cyberpanel, maka seringkali jadi tidak…

2 months ago

10 Aplikasi Kasir Terbaik di Indonesia (2025)

Bismillaahirrohmaanirrohiim... Dalam era digital saat ini, penggunaan aplikasi kasir (Point of Sale/POS) menjadi solusi penting…

2 months ago