export function disableFormSubmission(form: HTMLFormElement): void { form.classList.remove('w-form'); const parent = form.parentElement as HTMLElement; if (parent) { parent.classList.remove('w-form'); } form.addEventListener('submit', function(event) { event.preventDefault(); }); } export function formValues (form: HTMLFormElement): { [key: string]: string } { const formData = new FormData(form); const values: { [key: string]: string } = {}; formData.forEach((value, key) => { values[key] = value as string; }); return values; } export function formValue (form: HTMLFormElement, key: string): string { const values = formValues(form); return values[key]; } export function formValidate (form: HTMLFormElement): boolean { const inputs = form.querySelectorAll('input, select, textarea'); let isValid = false; inputs.forEach((input: HTMLInputElement) => { if (input.required && input.value) { isValid = true; } }); return isValid; } export function formError(form, message){ const errorMessage = message || 'Form is not valid. Please check the fields and try again.'; const successDiv = form.parentElement.querySelector(".w-form-done"); const errorDiv = form.parentElement.querySelector(".w-form-fail"); if (successDiv) { successDiv.style.display = 'none'; } if (errorDiv) { errorDiv.style.display = 'block'; errorDiv.innerHTML = errorMessage; } } export function formErrorHide(form){ const errorDiv = form.parentElement.querySelector(".w-form-fail"); if (errorDiv) { errorDiv.style.display = 'none'; } } export function formSuccess(form, formSubmitAction, nativeSucessMessage:boolean = true){ //default formSubmitAction is 'showMessage' const successAction = formSubmitAction || 'showMessage'; if (successAction === 'redirect'){ const redirectUrl = form.getAttribute('data-redirect'); if (redirectUrl){ window.location.href = redirectUrl } } const successDiv = form.parentElement.querySelector(".w-form-done"); const errorDiv = form.parentElement.querySelector(".w-form-fail"); if(nativeSucessMessage == true){form.style.display = 'none';} if (successDiv){ successDiv.style.display = 'block'; } if (errorDiv){ errorDiv.style.display = 'none'; } } export function formSubmitLoader(form: HTMLFormElement, message: string = 'Please wait...', disable: boolean = true){ const submitButton: HTMLInputElement = form.querySelector('input[type="submit"]'); if (submitButton){ submitButton.disabled = disable; submitButton.value = message; } } export function formReset(form: HTMLFormElement, resetFields: boolean = false){ if (resetFields){ form.reset(); } //clear all form fields const errorDiv: HTMLElement = form.parentElement.querySelector(".w-form-fail"); if (errorDiv) { errorDiv.style.display = 'none'; } const successDiv: HTMLElement = form.parentElement.querySelector(".w-form-done"); if (successDiv) { successDiv.style.display = 'none'; } form.style.display = ''; }