En muchas ocasiones, cuando completamos un formulario y hacemos click sobre el botón "Enviar", observamos en el navegador que el proceso no avanza, y volvemos a hacer click sobre el botón. A raíz de eso, la mayoría de las veces el proceso se realiza nuevamente, creando un registro repetido en una base de datos o enviando dos emails.
Una manera de evitarlo es utilizando un simple script que evita que se clickee más de una vez sobre el botón de envío del formulario.
Debemos ubicar el código dentro de la cabecera de la página (entre <head> y </head>):
<script LANGUAGE="JavaScript">
<!–
var cuenta=0;
function enviado() {
if (cuenta == 0)
{
cuenta++;
return true;
}
else
{
alert("El formulario ya está siendo enviado, por favor aguarde un instante.");
return false;
}
}
// –>
</script>
Y en el action del formulario debemos agregar lo marcado en negrita:
<form method="POST" action="proceso.php" onSubmit="return enviado()">
…
<input type="submit" value="Enviar">
</form>
Ejemplo:
(Al enviarlo se cargará nuevamente la página de esta artículo)