MIF_E31230910_MP-HRIS-WEB/public/js/form-handler.js

47 lines
1.6 KiB
JavaScript

(function() {
let isFormModified = false;
document.addEventListener('DOMContentLoaded', function() {
const form = document.querySelector('form');
const submitBtn = document.getElementById('submitBtn');
const submitText = document.getElementById('submitText');
const submitSpinner = document.getElementById('submitSpinner');
if (form) {
form.addEventListener('change', () => {
isFormModified = true;
});
form.addEventListener('submit', function() {
isFormModified = false;
if (submitBtn) {
submitBtn.disabled = true;
submitBtn.classList.add('opacity-75', 'cursor-not-allowed');
}
if (submitSpinner) submitSpinner.classList.remove('hidden');
if (submitText) submitText.textContent = 'Menyimpan...';
});
}
window.addEventListener('beforeunload', function(e) {
if (isFormModified) {
e.preventDefault();
e.returnValue = '';
}
});
const backLinks = document.querySelectorAll('.btn-back');
backLinks.forEach(link => {
link.addEventListener('click', function(e) {
if (isFormModified) {
const confirmLeave = confirm('Anda memiliki perubahan yang belum disimpan. Yakin ingin keluar?');
if (!confirmLeave) {
e.preventDefault();
}
}
});
});
});
})();