Necesito conectar un script para procesar el envío dentro de una etiqueta de form .
Existía la necesidad de que después de presionar el botón de enviar en el formulario no hubiera redirección, pero es necesario que este script funcione SOLO PARA ESTE FORMULARIO.
Intenté insertar un script dentro de una etiqueta de form y una etiqueta de button , pero el navegador eliminó la inserción de este script de las etiquetas después de abrir la página.
¿Hay alguna manera de adjuntar un script localmente a un form para que solo se llame para ese formulario?
<div class="template_printer">\n <form action="subscribe.php" method="POST"> <div> <label for="name">Name</label> <input type="text" name="name" id="name" /> </div> <div> <label for="email">Email</label> <input type="email" name="email" id="email" required/> </div> <p role="alert" class="status-failure" hidden>Connection failure, please try again.</p> <p role="alert" class="status-busy" hidden>Busy sending data, please wait.</p> <button type="submit">Submit</button> </form> </div> document.addEventListener('submit', e => { const form = e.target; const statusBusy = form.querySelector('.status-busy'); const statusFailure = form.querySelector('.status-failure'); fetch(form.action, { method: form.method, body: new FormData(form) }) .then(res => res.text()) .then(text => new DOMParser().parseFromString(text, 'text/html')) .then(doc => { const result = document.createElement('div'); result.innerHTML = doc.body.innerHTML; result.tabIndex = -1; form.parentNode.replaceChild(result, form); result.focus(); }) .catch(err => { Array.from(form.elements).forEach(field => field.disabled = false); lastActive.focus(); statusBusy.hidden = false; statusFailure.hidden = false; }); const lastActive = document.activeElement; statusBusy.hidden = false; statusBusy.tabIndex = -1; statusBusy.focus(); Array.from(form.elements).forEach(field => field.disabled = true); statusFailure.hidden = true; e.preventDefault(); });