Foros del Web » Programando para Internet » Javascript »

deshailitar submit

Estas en el tema de deshailitar submit en el foro de Javascript en Foros del Web. Buenos días: Desde un formulario se envian datos y archivo al servidor, pewro como tarda un rato los clientes dan varias veces al submit y ...
  #1 (permalink)  
Antiguo 04/11/2008, 00:43
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 2 meses
Puntos: 0
deshailitar submit

Buenos días:
Desde un formulario se envian datos y archivo al servidor, pewro como tarda un rato los clientes dan varias veces al submit y se triplica la solicitud.
He puesto el siguiente código, pero no rula, sigue duplicándose:

(el botón se llama "grabar")
<form name="form1" action="<?php echo $editFormAction; ?>" method="POST"enctype="multipart/form-data"onsubmit="grabar.disabled = true"
>

Apenas entiendo de javascript, seguro que estoy metiendo la pata.

Podeís ayaudarme?.
Gracias
  #2 (permalink)  
Antiguo 04/11/2008, 01:02
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: deshailitar submit

Código HTML:
<input id="grabar" type="submit" onClick="this.disabled=true;"> 

Última edición por Fernand0; 04/11/2008 a las 01:13
  #3 (permalink)  
Antiguo 04/11/2008, 01:26
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: deshailitar submit

Hola Fernad0:

No puedo cambiar el tipo de boton porque ya tengo una llamada a jascrip:

<input name="grabar" type="button" class="cajatexto1" value="Enviar Datos" style="font-weight: bold " onClick='javascript:validaform()' />

Gracias
  #4 (permalink)  
Antiguo 04/11/2008, 01:45
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: deshailitar submit

Es igual.. pone el onClick="this.disabled=true;" en la ETIQUETA que uses para ejecutar el submit()

O sea que seria..

Código HTML:
<input name="grabar" type="button" class="cajatexto1" value="Enviar Datos" style="font-weight: bold;" onClick="this.disabled=true; validaform();" /> 
  #5 (permalink)  
Antiguo 04/11/2008, 03:16
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: deshailitar submit

Muchas gracias Fernand0:
Funciona.
Un saludo
  #6 (permalink)  
Antiguo 04/11/2008, 03:31
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: deshailitar submit

Perdona de nuevo:
Surgió un problema,.
A la hora de valadar el formulario (con javascript) cuando da alerta de validación, se queda deshabilitado y ya no se puede enviar nada.

¿Se puede hacer algo?
  #7 (permalink)  
Antiguo 04/11/2008, 03:37
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: deshailitar submit

En validaform() usas el comando submit()?

Mostrame validaform() si no es muy largo
  #8 (permalink)  
Antiguo 04/11/2008, 03:53
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: deshailitar submit

Si lo uso, aquí va:

function validaform(){
if (document.form1.nombrerest.value==""){
alert ("Por favor, ponga el nombre del restaurante");
form1.nombrerest.focus()
return false;
}

if (document.form1.direccion.value==""){
alert ("Por favor, ponga la direccón del restaurante");
form1.direccion.focus()
return false;
}

if (document.form1.localidad.value==""){
alert ("Por favor, ponga la localidad ");
form1.localidad.focus()
return false;
}

if (document.form1.provincia.value==""){
alert ("Por favor, elija la provincia de su restaurante");
form1.provincia.focus()
return false;
}
if (document.form1.cp.value==""){
alert ("Debe escribir código postal");
form1.cp.focus()
return false;
}
if (document.form1.cp.value.length<5){
alert ("El código postal mínimo 5 dígitos");
form1.cp.focus()
return false;
}
if (document.form1.telefono.value==""){
alert ("Debe escribir el teléfono de reservas");
form1.telefono.focus()
return false;
}
if (document.form1.telefono.value.length<9){
alert ("El teléfono tiene que tener mínimo 9 dígitos");
formu1.telefono.focus()
return false;
}

nx=validateNumber(document.form1.telefono.value,fo rm1)
if(nx==true){
alert ("El teléfono tiene que tener únicamente números");
return false;
}


if (document.form1.email.value==""){
alert ("Debe escribir una dirección de E-Mail");
form1.email.focus()
return false;
}

xx1=checkEmailAddress(form1.email);
if(!xx1) {
alert ("Por favor escriba una dirección de E-Mail correcta");
return false;
}

document.form1.submit();
}
  #9 (permalink)  
Antiguo 04/11/2008, 03:58
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: deshailitar submit

Código PHP:
function validaform(){
....

document.getElementById('grabar').disabled=true;
document.form1.submit();

Fijate ahora (sacale el disabled al onClick del input)

O sino... dejas el disabled del onClick... y con cada focus().. tendrias que ponerle un document.getElementById('grabar').disabled=false;..

Código PHP:
document.getElementById('grabar').disabled=false;
form1.nombrerest.focus() 

Última edición por Fernand0; 04/11/2008 a las 04:04
  #10 (permalink)  
Antiguo 04/11/2008, 04:34
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: deshailitar submit

Gracias.
Funciona a la perfección, deshabilitado el elemtno desde la función validar.
Muchísimas gracias por tu atención.
  #11 (permalink)  
Antiguo 04/11/2008, 04:36
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: deshailitar submit

De nada..

Si no tambien podes cancelar el evento desde onsubmit.. pero creo que con eso alcanza.... depende tambien los gustos de cada uno :P

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 22:44.