Evitar el doble envío de un formulario
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)
|