Tengo un form con un elemento de entrada select . Después de que el usuario selecciona una opción, verifico esa opción elegida. Si es más grande de lo que esperaba, aparece un cuadro de alert que le pregunta al usuario si está seguro de haber seleccionado la opción correcta. Esto es solo una advertencia, por lo que no restablezco el valor ni evito que el usuario seleccione estas opciones.
Actualmente, esto hace que la alert se muestre primero, y luego la opción en la página web se cambia DESPUÉS de presionar OK .
¿Cómo puedo obtener el valor en un elemento select para mostrar la selección antes de procesarla durante el evento onchange ?
mySelectElement.onchange = function() { if(mySelectElement.value >= 1000) { alert("Are you sure you can eat that many apples?"); } // else nothing, less than 1000 };Un par de soluciones, una no usa una alerta. Puede usar una biblioteca modal, o simplemente enviar al dom.
Si debe usar una alerta, envuélvala en un setTimeout para que se retrase.
let select = document.querySelector("select"); select.addEventListener("change",function(){ if(select.value > 1){ setTimeout(function(){alert("Alert");},100); } }); <select ><option value="0">A</option><option value="3">3</option></select>