Foros del Web » Programando para Internet » Javascript »

evitar enviar dos veces mismo form

Estas en el tema de evitar enviar dos veces mismo form en el foro de Javascript en Foros del Web. Tengo una página para publicar comentarios a través de un form: A veces los usuarios se ponen impacientes y pulsan dos o tres veces el ...
  #1 (permalink)  
Antiguo 04/02/2006, 04:06
Avatar de mrgubu  
Fecha de Ingreso: febrero-2002
Ubicación: Granada
Mensajes: 431
Antigüedad: 22 años, 2 meses
Puntos: 2
evitar enviar dos veces mismo form

Tengo una página para publicar comentarios a través de un form: A veces los usuarios se ponen impacientes y pulsan dos o tres veces el botón submit del form y el contenido se publica repetido dos o tres veces. ¿cómo puedo evitar esto?

Gracias
  #2 (permalink)  
Antiguo 04/02/2006, 04:17
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola mrgubu

Puedes utilizar JavaScript para deshabilitar el botón cuando se envíe el formulario:

<form action="tupagina.asp" onsubmit="enviar.disabled=true">
<input type="submit" name="enviar" />

Saludos,
  #3 (permalink)  
Antiguo 05/02/2006, 04:15
Avatar de mrgubu  
Fecha de Ingreso: febrero-2002
Ubicación: Granada
Mensajes: 431
Antigüedad: 22 años, 2 meses
Puntos: 2
pero el formulario tiene otro js para validar campos vacíos, de forma que si el usuario hace click en el send con un campo vacío no sólo le da el menaje de que tiene que rellenar obligatoriamente dicho campo, sino que además ya no puede enviar el form porque está inhabilitado.
  #4 (permalink)  
Antiguo 05/02/2006, 04:28
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola de nuevo.

En ese caso deshabilita el submit en la función que usas para validar. Si pasa la validacion:

document.nombreFormu.nombreBoton.disabled = true;

Saludos,
  #5 (permalink)  
Antiguo 05/02/2006, 04:53
Avatar de mrgubu  
Fecha de Ingreso: febrero-2002
Ubicación: Granada
Mensajes: 431
Antigüedad: 22 años, 2 meses
Puntos: 2
Estoooo.... me estoy haciendo un lío como siempre conlos return true y los return false.

Javier B podrías explicarme como insertar el disabled en el form que actualmente tengo:

<SCRIPT type="text/javascript" ><!-- //
function form_validator(theForm)
{

if(theForm.mensaje_autor.value == "") {
alert("El campo Nombre no puede estar vacío");
theForm.mensaje_autor.focus();
return(false);
}

if(theForm.mensaje_body.value == "") {
alert("El campo Cuerpo no puede estar vacío");
theForm.mensaje_body.focus();
return(false);
}

return (true);

}
// -->
</SCRIPT>


<form method="POST" action="insertcoment.asp" name="formulario" onSubmit="return form_validator(this);">
Autor: <input type="text" name="mensaje_autor">
Email: <input type="text" name="mensaje_email">
Titulo:<input type="text" name="mensaje_tit">
Comentario:<textarea class="TextBox" name="mensaje_body" ></textarea>
<input type="submit" class="Boton1" value="Enviar" id="submitButton">

</form>

Gracias
  #6 (permalink)  
Antiguo 05/02/2006, 08:36
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
No problem:
Código:
if(theForm.mensaje_body.value == "") {
alert("El campo Cuerpo no puede estar vacío");
theForm.mensaje_body.focus();
return(false);
}
document.getElementById('submitButton').disabled = true;
return (true);

}
// -->
</script>
Saludos,
  #7 (permalink)  
Antiguo 05/02/2006, 11:57
Avatar de mrgubu  
Fecha de Ingreso: febrero-2002
Ubicación: Granada
Mensajes: 431
Antigüedad: 22 años, 2 meses
Puntos: 2
Perfecto, JavierB. Muchas Gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:39.