Your opinion
drives change

Every piece of feedback is carefully read by our team and responded to within 24–48 hours. Thank you for helping us improve.

Reply within 24–48h Data protected Anonymous option
4.8/5
Avg. satisfaction
2,180
Feedbacks received
98%
Response rate
Submit your feedback
Fill in the form below — we will get back to you as soon as possible
Select a rating
0/150
0/2000
Contact information (so we can reply to you)
Drag & drop files here or browse
JPG, PNG, GIF, PDF, DOC — max 5MB per file

Your information is kept confidential and only used to respond to your feedback. See our Privacy Policy .

Frequently asked questions
Will my feedback actually be read?
Yes — 100% of feedback is read and categorized by our team within 24 working hours.
How long until I receive a reply?
Can I submit anonymously?
Recently approved feedback
Mi
Minh Tuan
2 hours ago
"Very easy to use website, the donation process is fast and smooth!"
An
Anonymous
5 hours ago
"Hope to see more detailed reports for each campaign."
La
Lan Phuong
1 day ago
"The support team is enthusiastic and responds very quickly."
document.querySelectorAll('.fb-stars input').forEach(input => { input.addEventListener('change', function () { const labelEl = document.getElementById('starLabel'); if (labelEl) labelEl.textContent = starLabels[this.value] || ''; }); }); // ===== FILE UPLOAD PREVIEW ===== const attachInput = document.getElementById('attachInput'); const uploadZone = document.getElementById('uploadZone'); const uploadInner = document.getElementById('uploadInner'); const uploadPreview = document.getElementById('uploadPreview'); let selectedFiles = []; const toastMaxFiles = "Maximum 3 attachments"; const toastFileBig = "exceeds 5MB"; if (attachInput) { attachInput.addEventListener('change', function () { handleFiles(Array.from(this.files)); }); } if (uploadZone) { uploadZone.addEventListener('dragover', e => { e.preventDefault(); uploadZone.classList.add('drag-over'); }); uploadZone.addEventListener('dragleave', () => { uploadZone.classList.remove('drag-over'); }); uploadZone.addEventListener('drop', e => { e.preventDefault(); uploadZone.classList.remove('drag-over'); handleFiles(Array.from(e.dataTransfer.files)); }); } function handleFiles(files) { files.forEach(file => { if (selectedFiles.length >= 3) { showToast(toastMaxFiles); return; } if (file.size > 5 * 1024 * 1024) { showToast(`"${file.name}" ${toastFileBig}`); return; } if (!selectedFiles.find(f => f.name === file.name)) { selectedFiles.push(file); } }); renderPreview(); } function renderPreview() { if (selectedFiles.length > 0) { uploadInner.style.display = 'none'; uploadPreview.style.display = 'flex'; uploadPreview.innerHTML = selectedFiles.map((f, i) => `
${f.name}
` ).join(''); const dt = new DataTransfer(); selectedFiles.forEach(f => dt.items.add(f)); attachInput.files = dt.files; } else { uploadInner.style.display = 'block'; uploadPreview.style.display = 'none'; uploadPreview.innerHTML = ''; attachInput.value = ''; } } function removeFile(idx) { selectedFiles.splice(idx, 1); renderPreview(); } // ===== FAQ TOGGLE ===== function toggleFaq(item) { const answer = item.querySelector('.fb-faq-item__a'); const isOpen = item.classList.contains('fb-faq-item--open'); document.querySelectorAll('.fb-faq-item').forEach(el => { el.classList.remove('fb-faq-item--open'); el.querySelector('.fb-faq-item__a').style.display = 'none'; }); if (!isOpen) { item.classList.add('fb-faq-item--open'); answer.style.display = 'block'; } } // ===== SUBMIT LOADING ===== const form = document.getElementById('feedbackForm'); const submitBtn = document.getElementById('submitBtn'); if (form && submitBtn) { form.addEventListener('submit', function () { submitBtn.querySelector('.fb-submit-btn__inner').style.display = 'none'; submitBtn.querySelector('.fb-submit-btn__loader').style.display = 'flex'; submitBtn.disabled = true; }); } // ===== TOAST ===== function showToast(msg) { const toast = document.getElementById('fbToast'); toast.textContent = msg; toast.classList.add('show'); setTimeout(() => toast.classList.remove('show'), 2500); } // ===== AUTO-HIDE SUCCESS ALERT ===== const successAlert = document.getElementById('successAlert'); if (successAlert) { setTimeout(() => { successAlert.style.transition = 'opacity 0.5s'; successAlert.style.opacity = '0'; setTimeout(() => successAlert.remove(), 500); }, 5000); }