Menampilkan Peringatan Sebelum Meninggalkan Halaman Web Menggunakan JavaScript
onbeforeunload Event - Pernah ngga sih, setelah input data yang telah memakan waktu yang lama dan dengan jumlah text yang sudah sekian banyaknya, kamu malah salah menekan close tab ? Hal seperti ini tentu akan sangat menyebalkan dan tentu saja memancing emosi kita. Jika web yang sudah terdapat fitur autosave, tentu hal seperti tidak masalah, tapi jika tidak ada autosave, bagaimana ?
Ada beberapa cara agar ketika kita klik close tab tidak langsung keluar halaman, tapi akan ada semacam dialog konfirmasi. Nah, di artikel ini saya akan membagikan cara untuk menampilkan peringatan atau warning alert sebelum meninggalkan halaman web dengan perubahan atau inputan yang belum disimpan. Untuk membuat confirm dialog atau warning alert seperti ini, kita bisa menggunakan evenr onbeforeunload dari javascript.
Dan berikut ini adalah contoh bagaimana cara menggunakan onbeforeunload event untuk menampilkan peringatan atau warning alert sebelum meninggalkan halaman web dengan perubahan atau inputan yang belum disimpan.
Contoh
window.addEventListener('beforeunload', function (e) {
// Cancel the event
e.preventDefault(); // If you prevent default behavior in Mozilla Firefox prompt will always be shown
// Chrome requires returnValue to be set
e.returnValue = '';
});
Untuk membuat menampilkan warning alert atau confirm dialog ketika user melakukan muat ulang halaman atau close tab menggunakan javascript, kita bisa menggunakan window.addEventListener() dan beforeunload event seperti script di atas. Jadi jika diimplementasikan di halaman seperti halaman contact, kurang lebih scriptnya seperti di bawah ini.
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<!-- Bootstrap CSS -->
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC"
crossorigin="anonymous"
/>
<title>
display warning before leaving the web page with unsaved changes using
JavaScript
</title>
</head>
<body>
<div class="container mt-5">
<div class="row">
<h1 class="text-center fs-5">
display warning before leaving the web page with unsaved changes using
JavaScript
</h1>
<div class="card mt-3">
<div class="card-body">
<form>
<div class="mb-3">
<label for="name" class="form-label">Your Name</label>
<input type="text" class="form-control" id="name">
</div>
<div class="mb-3">
<label for="exampleInputEmail1" class="form-label">Email address</label>
<input type="email" class="form-control" id="exampleInputEmail1">
</div>
<div class="mb-3">
<label for="subject" class="form-label">Subject</label>
<input type="text" class="form-control" id="subject">
</div>
<div class="mb-3">
<label for="message" class="form-label">Message</label>
<textarea id="message" cols="30" rows="10" class="form-control"></textarea>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</div>
</div>
</div>
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"
integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM"
crossorigin="anonymous"
></script>
<script>
window.addEventListener("beforeunload", function (e) {
// Cancel the event
e.preventDefault(); // If you prevent default behavior in Mozilla Firefox prompt will always be shown
// Chrome requires returnValue to be set
e.returnValue = "";
});
</script>
</body>
</html>
Script di atas merupakan script untuk halaman contact sederhana. Cobalah menginputkan beberapa text pada input fields yang tersedia, kemudian coba refresh halaman atau klik close tab, maka akan ada peringatan atau confirm dialog apakah kita ingin melanjutkan refresh halaman atau close tab, dengan konsekuensi jika tetap melanjutkan refresh halaman atau close tab maka perubahan yang ada atau yang telah dilakukan tidak akan disimpan.
Selamat mencoba, semoga artikel ini bisa bermanfaat dan sampai jumpa di artikel berikutnya. 👋
Full Documentation: WindowEventHandlers.onbeforeunload
Credit: Web illustrations by Storyset
- Cara Mengatasi Error XAMPP: MySQL shutdown unexpectedly 23 Oktober 2021 65579 views
- Laravel 8: REST API Authentication dengan Sanctum 17 September 2021 31644 views
- Tutorial CRUD (Create, Read, Update & Delete) Codeigniter 4 dengan Bootstrap 14 Oktober 2021 29573 views
- Membuat REST API CRUD di Laravel 8 dengan Sanctum 18 September 2021 28216 views
- Contoh Cara Menggunakan Sweet Alert di Laravel 8 27 Agustus 2021 27269 views