Foros del Web » Programando para Internet » Javascript »

disabled no "disabilita" un button

Estas en el tema de disabled no "disabilita" un button en el foro de Javascript en Foros del Web. Pues eso, que no me funciona un .disabled. Primero de todo, decir que encontre varios temas al respecto en el foro, pero ninguno me ayudo ...
  #1 (permalink)  
Antiguo 29/07/2005, 08:41
moncherote
Invitado
 
Mensajes: n/a
Puntos:
disabled no "disabilita" un button

Pues eso, que no me funciona un .disabled. Primero de todo, decir que encontre varios temas al respecto en el foro, pero ninguno me ayudo :

Lo que quiero es evitar el envio duplicado de un formulario, cuyo codigo esta mas o menos asi :

Código:
<script language="JavaScript"> 
   function noVacio()
{
   
   document.forms["form1"].enviar.disabled=true;
   document.forms["form1"].submit();
}
  </script> 


<form name="form1" method="post" action="page.asp?accion=1">
<input name="enviar" type="button" id="enviar" value="Enviar" onclick="noVacio();">
</form>
supongo que se entiende, pero bueno, lo que hace es antes de enviar, comprobar unas cosillas que no he puesto aqui para no liar, y luego si todo esta bien, desabilita el boton enviar (teoricamente) y luego envia el form.

Por que no me hace esto????
  #2 (permalink)  
Antiguo 29/07/2005, 09:21
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Y si pones:

<form name="form1"
method="post"
action="page.asp?accion=1"
onsubmit="document.forms["form1"].enviar.disabled=true;">

No hace lo que quieres?

Ah! Tienes que cambiar el button por un submit y quitar la function... ya no te sería necesaria!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #3 (permalink)  
Antiguo 29/07/2005, 11:15
moncherote
Invitado
 
Mensajes: n/a
Puntos:
creo que no

Si te he entendido bien, karlankas, no me vale.

Como ya puse antes, en esa funcion hago alguna cosilla mas que aqui no puse para liar el tema, unas comprobaciones de campos vacios y demas.

por lo que necesito esa funcion.

En el onclick se pueden poner mas de una instrucción, algo asi como :

onclick="noVacio();document.forms["form1"].enviar.disabled=true;
"

  #4 (permalink)  
Antiguo 30/07/2005, 15:44
 
Fecha de Ingreso: febrero-2005
Mensajes: 198
Antigüedad: 19 años, 2 meses
Puntos: 5
A mi el boton me lo desabilita.


a ver si tu crees que esta llegando a esa parte de la función cuando en realidad no lo hace.
  #5 (permalink)  
Antiguo 01/08/2005, 03:28
moncherote
Invitado
 
Mensajes: n/a
Puntos:
a ver, a ver

Siento no haberme expresado correctamente :

Si me pasa por ahi porque si te das cuenta, debajo de disabled tengo en envio del formulario, que si me funciona. os pongo todo el codigo.

Código PHP:
<script language="JavaScript"
   function 
noVacio()
{
var 
document.forms["form1"].mails.value;
var 
filter=/^[A-Za-z][A-Za-z0-9_]*@[A-Za-z0-9_]+.[A-Za-z0-9_.]+[A-za-z]$/;

  if (
document.forms["form1"].mails.value == "")
  {
    
alert("El campo mail no puede quedar vacio");
    
document.forms["form1"].mails.focus();
    return 
false;
  }
  if (
document.forms["form1"].empresas.value == "")
  {
    
alert("El campo empresa no puede quedar vacio");
    
document.forms["form1"].empresas.focus();
    return 
false;
  }

   if (
filter.test(s))
        
document.forms["form1"].submit();        
   else
     
alert("El email no parece válido.");
        
document.forms["form1"].mails.focus();
   return 
false;
   
   
document.forms["form1"].enviar.disabled=true;
   
document.forms["form1"].submit();
}
  
</script> 
y en el form

Código PHP:

<form name="form1" method="post" action="page.asp?accion=1">
                      <
p>NOMBRE :<br>
                        <
input name="nombres" type="text" id="nombres" size="60" maxlength="255">
                      </
p>
                      
              <
p>* EMAIL :<br>
                        <
input name="mails" type="text" id="mails" size="60" maxlength="255">
                      </
p>
                      
              <
p>* EMPRESA :<br>
                        <
input name="empresas" type="text" id="empresas" size="60" maxlength="255">
                      </
p>
                      <
p>PAIS :<br>
                        <
input name="paiss" type="text" id="paiss" size="60" maxlength="255">
                      </
p>
                      <
p>
                        <
input name="id_producto" type="hidden" id="id_producto" value="<%=request.QueryString("id_producto")%>">
                        <
input name="enviar" type="button" id="enviar" value="Enviar"  onclick="noVacio();">
                        <
input name="borrar" type="reset" id="borrar" value="Limpiar">
                        <
input name="cerrar" type="button" id="cerrar" value="Cerrar" onclick="window.close()">
</
form
por el submit si que pasa, asin que no se porque no no hace el disabled, porque me enviar varias veces la información.

Saludossss cordialesss
  #6 (permalink)  
Antiguo 01/08/2005, 04:10
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Prueba con esto:
Código PHP:
<html>
<
head>
<
title>Untitled</title>
<
script language="JavaScript">
campos=["mails","empresas"];
texto=["mail","empresa"];

function 
noVacio(){
    
document.forms["form1"]["enviar"].disabled=true;
    var 
document.forms["form1"].mails.value;
    var 
filter=/^[A-Za-z][A-Za-z0-9_]*@[A-Za-z0-9_]+.[A-Za-z0-9_.]+[A-za-z]$/;

    for(
a=0;a<campos.length;a++){
          if (
document.forms["form1"][campos[a]].value == ""){
            
alert("El campo "+texto[a]+" no puede quedar vacio");
            
document.forms["form1"][campos[a]].focus();
            
document.forms["form1"].enviar.disabled=false;
            return 
false;
          }
    }
     if (!
filter.test(s)){
        
alert("El email no parece válido.");
        
document.forms["form1"].mails.focus();
        
document.forms["form1"].enviar.disabled=false;
        return 
false;
   }
    
document.forms["form1"].submit();
}
  
</script>
</head>

<body>
<form name="form1" method="post" action="page.asp?accion=1" onsubmit="return noVacio()">
                      <p>NOMBRE :<br>
                        <input name="nombres" type="text" id="nombres" size="60" maxlength="255">
                      </p>
                      
              <p>* EMAIL :<br>
                        <input name="mails" type="text" id="mails" size="60" maxlength="255">
                      </p>
                      
              <p>* EMPRESA :<br>
                        <input name="empresas" type="text" id="empresas" size="60" maxlength="255">
                      </p>
                      <p>PAIS :<br>
                        <input name="paiss" type="text" id="paiss" size="60" maxlength="255">
                      </p>
                      <p>
                        <input name="id_producto" type="hidden" id="id_producto" value="">
                        <input name="enviar" type="submit" id="enviar" value="Enviar" >
                        <input name="borrar" type="reset" id="borrar" value="Limpiar">
                        <input name="cerrar" type="button" id="cerrar" value="Cerrar" onclick="window.close()">
</form> 


</body>
</html> 
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #7 (permalink)  
Antiguo 01/08/2005, 05:14
moncherote
Invitado
 
Mensajes: n/a
Puntos:
ni caso

no se porque pero no me va tampoco. tiene que haber alguna solucion para desabilitar el puñetero boton :-p

gracias karlankas,
  #8 (permalink)  
Antiguo 02/08/2005, 09:54
moncherote
Invitado
 
Mensajes: n/a
Puntos:
any idea ???

alguna otra idea para evitar la duplicidad de envios por el form ?!?!?!??!
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 13:31.