One Hat Cyber Team
Your IP :
216.73.216.55
Server IP :
5.189.175.239
Server :
Linux panel.gemx-ai.com 5.14.0-570.19.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jun 4 04:00:24 EDT 2025 x86_64
Server Software :
LiteSpeed
PHP Version :
8.2.28
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
farmersapp
/
store.farmersapp.store
/
public
/
js
/
Edit File:
form-validation.js
document.addEventListener('DOMContentLoaded', function() { // Apply to all forms with class 'validate-form' or with required fields const forms = document.querySelectorAll('form'); forms.forEach(form => { // Add submit event listener to each form form.addEventListener('submit', function(event) { let isValid = true; // Find all required inputs, selects, and textareas const requiredFields = form.querySelectorAll('input[required], select[required], textarea[required]'); // Reset all borders first requiredFields.forEach(field => { field.classList.remove('border-red-500'); field.classList.remove('ring-red-500'); }); // Check each required field requiredFields.forEach(field => { // For radio buttons and checkboxes if ((field.type === 'radio' || field.type === 'checkbox') && field.name) { const group = form.querySelectorAll(`[name="${field.name}"]:checked`); if (group.length === 0) { // Find all inputs with the same name and add red border form.querySelectorAll(`[name="${field.name}"]`).forEach(input => { input.classList.add('border-red-500'); input.classList.add('ring-red-500'); }); isValid = false; } } // Email validation else if (field.type === 'email') { const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; if (!field.value.trim() || !emailRegex.test(field.value.trim())) { field.classList.add('border-red-500'); field.classList.add('ring-red-500'); isValid = false; } } // For all other input types else if (!field.value.trim()) { field.classList.add('border-red-500'); field.classList.add('ring-red-500'); isValid = false; } }); // Prevent form submission if validation fails if (!isValid) { event.preventDefault(); } }); // Add focus event to remove red border when field is focused const allFields = form.querySelectorAll('input, select, textarea'); allFields.forEach(field => { field.addEventListener('focus', function() { this.classList.remove('border-red-500'); this.classList.remove('ring-red-500'); }); }); }); // Modal dialog handling document.addEventListener('dialog-closed', function() { // Find all forms in dialogs const modalForms = document.querySelectorAll('x-dialog form, [x-dialog] form'); modalForms.forEach(form => { // Reset form form.reset(); // Clear validation errors const invalidFields = form.querySelectorAll('.border-red-500, .ring-red-500'); invalidFields.forEach(field => { field.classList.remove('border-red-500'); field.classList.remove('ring-red-500'); }); }); }); document.addEventListener('dialog-opened', function() { // Find all forms in dialogs const modalForms = document.querySelectorAll('x-dialog form, [x-dialog] form'); modalForms.forEach(form => { // Reset form form.reset(); // Clear validation errors const invalidFields = form.querySelectorAll('.border-red-500, .ring-red-500'); invalidFields.forEach(field => { field.classList.remove('border-red-500'); field.classList.remove('ring-red-500'); }); }); }); });
Simpan