Foros del Web » Programando para Internet » Javascript »

Valida pero envia igual

Estas en el tema de Valida pero envia igual en el foro de Javascript en Foros del Web. Tengo una pagina con radiobutons y textboxes. he usado este codigo de la FAQ, pero envia el formulario independientemente de detectar que haya o no ...
  #1 (permalink)  
Antiguo 13/04/2005, 05:27
Avatar de Pazosele  
Fecha de Ingreso: marzo-2005
Ubicación: BCN - España
Mensajes: 200
Antigüedad: 19 años, 1 mes
Puntos: 0
Pregunta Valida pero envia igual

Tengo una pagina con radiobutons y textboxes.
he usado este codigo de la FAQ, pero envia el formulario independientemente de detectar que haya o no campos sin responder.. alguna idea para que no envie hasta que no se hayan rellenado?


Código PHP:
function comprobar(){var mal=false
    
numero=document.forms[0].elements.length
    for(
a=0;a<numero;a++){ 
    if (
document.forms[0].elements[a].value=="") {document.forms[0].elements[a].style.backgroundColor="#ffffcc";mal=true;} 
    
//else{document.forms[0].elements[a].style.backgroundColor="white";}  esto lo he anulado pq a mi no me hacia falta
    

    if(
mal){alert("Por favor, rellene las cajas coloreadas");} 
    else if (
mal=false){document.forms[0].submit()} 
    } 
El formulario esta escrito asi:
Código PHP:
<FORM METHOD="post" NAME="Formulario" ID="Formulario" action="javascript:alert('enviando')" >

.
.
.
.
<
INPUT " TYPE="submit" NAME="accion" VALUE="Enviar" onclick="comprobar()"> 
</FORM> 
__________________
Share our Knowledge!
Adura Vita!

Última edición por Pazosele; 13/04/2005 a las 05:31 Razón: mas info
  #2 (permalink)  
Antiguo 13/04/2005, 08:26
Avatar de Carlitos
Usuario no validado
 
Fecha de Ingreso: mayo-2001
Ubicación: Zaragoza
Mensajes: 1.304
Antigüedad: 23 años
Puntos: 25
Hola

Corrige esta línea:

else if (mal=false){document.forms[0].submit()}

por esta:

else {document.forms[0].submit()}
  #3 (permalink)  
Antiguo 13/04/2005, 08:55
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
Veo que no solo has quitado lo del color de fondo... es muy feo quitar los créditos en los scripts ajenos...

http://www.forosdelweb.com/showpost....&postcount=123
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #4 (permalink)  
Antiguo 14/04/2005, 05:00
Avatar de Pazosele  
Fecha de Ingreso: marzo-2005
Ubicación: BCN - España
Mensajes: 200
Antigüedad: 19 años, 1 mes
Puntos: 0
Quitando eso, es decir, tal como esta en la FAQ, tampoco me funciona.. me dice que faltan rellenar campos, peor luego lo envia igual..
ALquien sabe porque?

PD: KARLANKAS, solo he pegado el codigo que podia dar conflicto, peor no sufras que en el codigo entero si que sale tu nombre ;)

(lo puedes ver en otro post que puse antes con el codigo entero)
__________________
Share our Knowledge!
Adura Vita!
  #5 (permalink)  
Antiguo 14/04/2005, 05:13
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
Para que funcione tienes que cambiar el tipo de input del submit de submit a button.
Código PHP:
<INPUT TYPE="button" NAME="accion" VALUE="Enviar" onclick="comprobar()"
O si quieres quitar el onclick de ese botón y cambiar un poco el código:

Código PHP:
function comprobar(){
    var 
mal=false;
    
numero=document.forms[0].elements.length;
    for(
a=0;a<numero;a++){
    if (
document.forms[0].elements[a].value=="") {document.forms[0].elements[a].style.backgroundColor="#ffffcc";mal=true;}
    
//else{document.forms[0].elements[a].style.backgroundColor="white";}  esto lo he anulado pq a mi no me hacia falta
    
}
    if(
mal){alert("Por favor, rellene las cajas coloreadas");}
    return !
mal
    
}     </script>
</head>

<body>
<form action="javascript:alert('enviando')"
      method="post"
      name="formulario"
      id="formulario"
      style="font:normal 10px/10px verdana;border:solid 1px black;text-align:right;width:300px;"
      onsubmit="return comprobar()">
...
<INPUT TYPE="submit" NAME="accion" VALUE="Enviar" > 
Perdona el comentario de ayer... es que ayer tuve un día un poco malo...

__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #6 (permalink)  
Antiguo 14/04/2005, 05:27
Avatar de Pazosele  
Fecha de Ingreso: marzo-2005
Ubicación: BCN - España
Mensajes: 200
Antigüedad: 19 años, 1 mes
Puntos: 0
Gracias Karlankas!

Muchas gracias!
Me has ayudado un monton!

Por lo de ayer ni te preocupes ;)
Saludos! y nos vemos por el foro!
(seguro que pronto tengo alguna preguntilla mas) XD
__________________
Share our Knowledge!
Adura Vita!
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 14:09.