pronto sigue apareciendo

Tengo un formulario de cálculo. Quiero poner una verificación de validación vacía en cada cuadro de texto. pero el problema es que el cuadro de alerta no se cierra después de marcar el primer cuadro. Quiero marcar 10 campos antes de hacer clic en el botón de cálculo.

function checkTextField(field) { if (field.value == 0) { window.prompt(field.name + "cannot be empty"); field.focus(); return false; } return true; }   

Tienes un círculo vicioso de eventos que se vuelven a propmt entre sí, de modo que cada vez que limpias tu propmt , se genera uno nuevo. Cada vez que el usuario abandona un campo y detecta que no es válido, establece el foco de nuevo en él, lo que provoca que el campo en el que el usuario se haya movido pierda su foco y cause otro error de validación.

Además, ahora ha descubierto por qué alert() y prompt() pueden ser dañinos ya que bloquean la IU.

Un mejor enfoque sería tener un mensaje en un elemento DOM al lado del campo. Esto no bloqueará la UI.

… Y no use atributos de manejo de eventos HTML en línea ( onclick , onmouseover , etc.). Use JavaScript dedicado con .addEventListener() . He aquí por qué .

 // Place this code in a  
 span.error { color:red; }