Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

119
Vistas
¿Es posible hacer un botón Cerrar/Descartar para HTML nativo <diálogo> (sin complemento) con <formulario>?

Siguiendo este ejemplo , creo un dialog simple que contiene un form :

 const diag = document.querySelector("#diag") diag.addEventListener("close", () => { if (!diag.returnValue) { return; } document.querySelector(".result").textContent = document.querySelector("#txt-name").value; }); document.querySelector("#btn-show").addEventListener("click", () => { diag.showModal(); });
 <dialog id="diag"> <form method="dialog"> <input id="txt-name" required /> <button value="submit">Submit</button> <button value="">Cancel</button> </form> </dialog> <button id="btn-show">Show Dialog</button> <p>Result: <span class="result"></span></p>

Sin embargo, dado que la input tiene un atributo required , el usuario no puede hacer clic en ella sin completarla. Sé que puedo agregar un evento de click al botón Cancelar y cerrar el cuadro de diálogo, pero tengo muchos cuadros de diálogo como este y es mejor si hay una solución nativa general.

Necesito una solución que cierre el diálogo; y establece su returnValue en vacío ("") si dicho botón genera un evento de close .

Solución actual:

 document.querySelector("#btn-cancel") .addEventListener("click", () => { diag.close(""); // Have to set this since onclose event is raised. })
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Creo que debería usar dialog.close() en su detector de eventos de cancel button . Si lo hace, descartará todo el diálogo y, por lo tanto, eliminará todas las inputs sin completar. El formulario no se enviará en dialog.close() .

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda