Estoy intentando mostrar un modal con los resultados de una consulta php, después de enviar un botón, pero el modal parpadea en la pantalla, en lugar de permanecer hasta que se cierra manualmente, debido al hecho de que enviar un formulario actualiza la página.
<script> var modal = document.getElementById("myModal"); var btn = document.getElementById("submitForm"); var span = document.getElementsByClassName("close")[0]; var form = document.getElementsByClassName("myForm")[0]; btn.addEventListener('click', openModal); function openModal() { form.submit(); modal.style.display = "block"; console.log("shiet"); } span.addEventListener('click', closeModal); function closeModal(){ modal.style.display = "none"; } window.addEventListener('click', function(event){ if (event.target == modal) { modal.style.display = "none"; } }); </script>Al hacer clic en el botón id=submitForm, quiero que aparezca un modal que contenga los resultados de un script php. Este modal se puede cerrar haciendo clic fuera de la pantalla o activando closeModal, haciendo clic en un elemento de intervalo.
Prueba esto:
window.addEventListener('click', function(event){ if (event.target != modal) { modal.style.display = "none"; } else { modal.style.display = "block"; } });Aquí quise decir que si el usuario está haciendo clic en la ventana pero no en el modal, entonces oculte eso; de lo contrario, mantenga el modal visible ...
¡Creo que el modal parpadea por esta razón!
¡Espero que esto funcione!