Mencegah Pengabaian Borang tanpa Kehilangan Data
Apabila pengguna menavigasi keluar dari halaman web dengan data borang yang tidak disimpan, ia boleh mengecewakan untuk kehilangan mereka kemajuan. Melaksanakan gesaan amaran adalah penting untuk memastikan integriti data dan kepuasan pengguna.
Melaksanakan Peristiwa BeforeUnload
Pendekatan pertama melibatkan pengendalian acara beforeunload dan mengembalikan bukan null rentetan. Walau bagaimanapun, ambil perhatian bahawa menyerahkan borang juga boleh mencetuskan acara ini. Untuk mengurangkan perkara ini, tetapkan bendera (formSubmitting) untuk menunjukkan penyerahan borang dan sekat gesaan dengan sewajarnya.
window.onload = function () { window.addEventListener("beforeunload", function (e) { if (formSubmitting) { return; } var confirmationMessage = 'Unsaved changes will be lost.'; (e || window.event).returnValue = confirmationMessage; // IE return confirmationMessage; // Others }); };
Menggunakan Bendera "Kotor"
Untuk mengelakkan gesaan pengguna apabila tiada perubahan dibuat, gunakan "kotor" bendera.
var isDirty = function () { return /* logic here */ }; window.onload = function () { window.addEventListener("beforeunload", function (e) { if (formSubmitting || !isDirty()) { return; } // Display prompt here }); };
Pendekatan Alternatif
Penyelesaian Pihak Ketiga
Pertimbangkan untuk memanfaatkan perpustakaan terbukti untuk memudahkan pelaksanaan:
Pertimbangan Penyemak Imbas
Mesej tersuai mungkin tidak disokong dalam penyemak imbas moden seperti Firefox dan Chrome. Pertimbangkan untuk menggunakan dialog penyemak imbas lalai untuk kejelasan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencegah Pengabaian Borang Web Semasa Melindungi Data Tidak Disimpan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!