go-micro.dev/v5@v5.12.0/cmd/micro/web/main.js (about) 1 // Minimal JS for reactive form submissions 2 3 document.addEventListener('DOMContentLoaded', function() { 4 document.querySelectorAll('form[data-reactive]')?.forEach(function(form) { 5 form.addEventListener('submit', async function(e) { 6 e.preventDefault(); 7 const formData = new FormData(form); 8 const params = {}; 9 for (const [key, value] of formData.entries()) { 10 params[key] = value; 11 } 12 const action = form.getAttribute('action'); 13 const method = form.getAttribute('method') || 'POST'; 14 try { 15 const resp = await fetch(action, { 16 method, 17 headers: { 'Content-Type': 'application/json' }, 18 body: JSON.stringify(params) 19 }); 20 const data = await resp.json(); 21 // Find or create a response container 22 let respDiv = form.querySelector('.js-response'); 23 if (!respDiv) { 24 respDiv = document.createElement('div'); 25 respDiv.className = 'js-response'; 26 form.appendChild(respDiv); 27 } 28 respDiv.innerHTML = '<pre>' + JSON.stringify(data, null, 2) + '</pre>'; 29 } catch (err) { 30 alert('Error: ' + err); 31 } 32 }); 33 }); 34 });