Foros del Web » Programando para Internet » Javascript »

Un solo clic en el boton submit

Estas en el tema de Un solo clic en el boton submit en el foro de Javascript en Foros del Web. Hola, amigos, quisiera saber como puedo hacer que el boton submit se desactibe despues de apretarlo por primera vez , ya que es muy molesto ...
  #1 (permalink)  
Antiguo 01/05/2003, 11:52
Avatar de Nukelino  
Fecha de Ingreso: abril-2003
Ubicación: Buenos Aires
Mensajes: 116
Antigüedad: 21 años, 1 mes
Puntos: 0
Exclamación Un solo clic en el boton submit

Hola, amigos, quisiera saber como puedo hacer que el boton submit se desactibe despues de apretarlo por primera vez , ya que es muy molesto recibir 5 veces lo mismo...

Desde ya muchas gracias!!!!!
  #2 (permalink)  
Antiguo 01/05/2003, 12:39
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 9 meses
Puntos: 381
Hola,

puedes pedirle


<input type="submit" onclick="this.disabled=true">

Eso si, si actualizan la página volverá a estar habilitado.

saludos
  #3 (permalink)  
Antiguo 01/05/2003, 16:38
Avatar de Nukelino  
Fecha de Ingreso: abril-2003
Ubicación: Buenos Aires
Mensajes: 116
Antigüedad: 21 años, 1 mes
Puntos: 0
Exclamación onclick="this.disabled=true"

Cuando pongo onclick=\"this.disabled=true\" en un submit, no manda el formualrio....
Hay alguna otra manera de desabilitarlo para que no manden 20 veses el mismo form??
  #4 (permalink)  
Antiguo 01/05/2003, 17:14
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 9 meses
Puntos: 381
Cierto;

mejor ponle a tu tag de form

<form name="formu" onsubmit="this.nombredelBoton.disabled=true">


Por favor, no abras un nuevo mensaje para continuar con un tema que tengas previamente abierto.

Voy a unir ambos mensajes.

saludos
  #5 (permalink)  
Antiguo 01/05/2003, 21:08
Avatar de Nukelino  
Fecha de Ingreso: abril-2003
Ubicación: Buenos Aires
Mensajes: 116
Antigüedad: 21 años, 1 mes
Puntos: 0
No me funciona

No me funciona, me sigue mandando cuantas veses apretes el submit...
Alguna otra idea?
  #6 (permalink)  
Antiguo 02/05/2003, 10:15
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Hola Nukelino:

La verdad es que de formularios entiendo bastante poco, pero algunas veces he hecho apaños...

Me parece que cuando se hace submit, a la vez se suele refrescar la página.

En una ocasión solucioné el problema usando una página intermedia...

Voy a explicarte la teoría, ya que no tengo mucho tiempo para ponerte un ejemplo.

El secreto está en no tener un submit en el formulario, sino a una página intermedia que recoja los datos del formulario y haga el submit, y después se cierre. Entonces no afectaría el efecto que propone tunait... Algo así:

<form>
<input type=text name=algo value=algo>
<input type=button onclick='window.open('formulario.html","","")'
</form>

luego formulario.html sería algo así:

<html... bla, bla...
<form action=envio.php>
<input type=hidden name=algo>
</form>

... y en la cabecera de esa página algo así:

document.forms[0].algo.value = opener.document.forms[0].algo.value;
document.forms[0].submit();
self.close();

Si no te enteras de algo, dilo, a ver si te podemos ayudar.

Saludos
  #7 (permalink)  
Antiguo 02/05/2003, 11:53
Avatar de Nukelino  
Fecha de Ingreso: abril-2003
Ubicación: Buenos Aires
Mensajes: 116
Antigüedad: 21 años, 1 mes
Puntos: 0
Mira...

Parece que esta muy buena la idea, tuve que acomodar un poco el OnClick para que me funcione. Lo probé en un formulario secundario, no en el que tendría que ir, porque antes tengo una duda...

> Antes de darle el submit, actualmente, crea unas variables que las imprime en una "Vista previa"...
Lo que dices, Levanta todas las variables que crea el el form? o hay que modificar algo mas??

Yo no recuerdo que pagina era, pero una ves vi un formulario que sin querer presione dos veces el submit y como consecuencia me salto un Alert diciéndome lo sucedido....

Lo que dice tunait, esta muy bueno por la simplicidad, pero creo que no le da tiempo a suministrar, tendría que ser un OnClick disabled después de x segundos , Seria posible?
  #8 (permalink)  
Antiguo 02/05/2003, 17:29
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Hola otra vez:

La verdad es que no te entiendo. Tal vez las cosas no estaban bien acomodadas desde un principio...

Creo que la idea de tunait es buena, pero tal vez no usaste los eventos adecuados...
el evento onsubmit es para la etiqueta form, y el botón que hay que poner disabled es el submit.

Si tienes una ventana que muestra los datos del formulario, tal como se muestran los datos se puede hacer el submit, y si son una copia, no se perderían los valores originales.

Si lo que dices de una vista previa es por el uso de una copia de los datos del formulario, si prefieres que no se vean, puedes pasar los datos a un campo oculto... input type=hidden.

Tal vez sea mejor que te expliques mejor.

Saludos
  #9 (permalink)  
Antiguo 02/05/2003, 17:42
Avatar de Nukelino  
Fecha de Ingreso: abril-2003
Ubicación: Buenos Aires
Mensajes: 116
Antigüedad: 21 años, 1 mes
Puntos: 0
En mi caso no seria practico utilizar otra ventana de por medio, Me gustaria Terminar la idea de tunait, que aprece muy sensillo, solo es que no me funcionan .....

Lo que decia en el mansaje anterior es que :

Código PHP:
<input type="submit" onclick="this.disabled=true"
Ignora el submit en si, solo lo desabilita.
Pensaba si le dariamos unos segundos antes de desabilitarse, podria ser...


La otra opcion es poner:
Código PHP:
<form name="formu" onsubmit="this.op.disabled=true"
Donde op es el nombre de mi boton.
En este caso no lo desabilita pero si lo subministra.

Que podemos hacer?

Última edición por Nukelino; 02/05/2003 a las 17:45
  #10 (permalink)  
Antiguo 02/05/2003, 18:02
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Hola otra vez:

No sé si estará tunait activa, si no te lo digo más o menos, como podrían ser esas opciones.

para que algo se produzca después de 1 segundo tienes que poner setTimeout("ese_algo", 1000)...

En tu caso sería:

<input type="submit" onclick="setTimeout('this.disabled=true', 1000)">

La otra manera es deshabilitando el botón submit, y por compatibilidad, en vez de usar this, pon:
document.forms.el_formulario.el_submit.disabled = true

A ver si ahora funciona.

Saludos
  #11 (permalink)  
Antiguo 02/05/2003, 18:09
Avatar de Beakdan  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 22 años, 5 meses
Puntos: 7
Nukelino:

Yo tuve ese problema alguna vez, pero además el inconveniente de que el formulario sería usado en navegadores en los cuales la propiedad disabled no estaba disponible.

Luego, en lugar de inhabilitar el botón puesto que no era posible, inhabilité el form.

En el form, agregamos una función para el evento onsubmit:
Código:
onsubmit="return habilitarForm()"
Luego, la función habilitarForm() retorna true la primera vez, lo cual permite que el formulario se envíe, y cambia una variable a false que impedirá que en subsecuenentes clic's, el formulario sea enviado. Con esta solución, el botón de submit siempre puede ser presionado. Un ligero cambio en el script para inhabilitar el botón, puede ser algo más agradable. Pero a mí me daba resultados erráticos. Pruébalo:
Código:
var primerEnvio = true
function habilitarForm(){
  if (!primerEnvio){return primerEnvio};
  primerEnvio = false;
  return true;
}
Saludos.

Última edición por Beakdan; 02/05/2003 a las 18:11
  #12 (permalink)  
Antiguo 02/05/2003, 18:37
Avatar de Nukelino  
Fecha de Ingreso: abril-2003
Ubicación: Buenos Aires
Mensajes: 116
Antigüedad: 21 años, 1 mes
Puntos: 0
Muchas gracias a todos, ya me anda..... utilise lo de desabilitar el form...

Caricatos, tunait, Beakdan, gracias a sus comentarios pude utilizar sus conocimientos y me agregue un sistema de condiciones que no te deje publicar (poemas en mi caso)... Hasta que no rellenes todos los campos no se habilita el submit

Porfin no voy a recibir 20 veces el mismo "poema" ajajja


Gracias, Muchas gracias, perdonen mi ortografia, Saludos
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 02:06.