Foros del Web » Programando para Internet » Javascript »

No funciona validar formulario

Estas en el tema de No funciona validar formulario en el foro de Javascript en Foros del Web. Tengo un formulario el cual no quiero que se ejecute si los campos estan vacios. Al principio me salia el letrero diciendo que no podia ...
  #1 (permalink)  
Antiguo 23/02/2011, 17:02
 
Fecha de Ingreso: septiembre-2010
Mensajes: 33
Antigüedad: 13 años, 7 meses
Puntos: 0
No funciona validar formulario

Tengo un formulario el cual no quiero que se ejecute si los campos estan vacios.

Al principio me salia el letrero diciendo que no podia dejar los campos vacios, pero ahora no, no se que paso, que le moví.

Y lo otro, aun así verifique que el formulario tiene campos vacios, aun así ejecuta la acción.

Cual es el problema?

Código PHP:
<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
<!--
function valido(campo)
{
hola=document.form1.elements[campo] 
    if (hola.value == "")
    {
        alert ("No puedes dejar el campo "+hola.name+" vacío");
        hola.focus(); 
        return false;
    }
    else
        return true;
}
//-->
</SCRIPT>
</head>
<body>
 <form action="imprimiranuncio.php?valido=1" method="post" name="form1" target="_blank" id="form1" >
        <table width="100%" border="0" bgcolor="#FFF0B7">
          <tr>
            <td><strong>Nombre:</strong>              <input name="nombre" type="text" id="nombre" size="20" />              <strong>Documento de Identidad:</strong>              <input name="documento" type="text" id="documento" size="20" />              <strong>Correo Electr&oacute;nico:</strong><strong>
              <input name="email" type="text" id="email" size="20" />
                        </strong></td>
          </tr>
          <tr>
            <td><label></label>
              <label>
              <div align="right">
                <input type="submit" name="enviar" value="Enviar" onClick="valido(2);valido(1);valido(0)"/>
              </div>
              </label>
                <div align="right">
                  <input name="valido" type="hidden" id="valido" value="1" />
                  <input name="id" type="hidden" id="id" value="<?php echo $row_veranuncio['id']; ?>" />
            </div></td>
          </tr>
        </table>
      </form>
</body>
  #2 (permalink)  
Antiguo 23/02/2011, 17:10
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: No funciona validar formulario

No habías puesto ya esta pregunta?
No debes llamar la validación en un botón, tienes que indicar en el for onsubmit="valida();return false;"

el return false es para que si la validación da un error no se complete el submit.
  #3 (permalink)  
Antiguo 23/02/2011, 17:11
 
Fecha de Ingreso: septiembre-2010
Mensajes: 33
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: No funciona validar formulario

Nop, es la primera vez que pongo el tema.

La verdad soy muy novato en estos temas.
  #4 (permalink)  
Antiguo 23/02/2011, 17:12
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: No funciona validar formulario

Hola:

No lo haces bien.

La validación se pone en el tag form, y el resultado false la cancela... en tu caso, para hacerlo simplificado:

<form onsubmit=return (valida(2) && valida(1) && valida(0))...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Última edición por caricatos; 23/02/2011 a las 17:13 Razón: ortografía
  #5 (permalink)  
Antiguo 23/02/2011, 17:17
 
Fecha de Ingreso: septiembre-2010
Mensajes: 33
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: No funciona validar formulario

Nada, se manda solo de una y no verifica nada.
  #6 (permalink)  
Antiguo 23/02/2011, 17:34
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: No funciona validar formulario

Hola:

Has puesto bien los paréntesis y operadores...

De todos modos, puedes orientarte con este artículo: El abc de los formularios

La forma que yo uso para validar es más o menos:

function validar(formulario, campo1, campo2, campo3) {
var errores = [];
if (formulario[campo1].value == "") errores.push("falta el campo 1");
if (formulario[campo2].value == "") errores.push("falta el campo 2");
if (formulario[campo3].value == "") errores.push("falta el campo 3");
if (errores.length > 0) alert(errores.join("\n"));
return (errores.length == 0)
}

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 23/02/2011, 17:57
 
Fecha de Ingreso: septiembre-2010
Mensajes: 33
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: No funciona validar formulario

Ok, gracias.

Y como iria la validacion dentro del formulario? es decir

<form onsubmit=".... ??
  #8 (permalink)  
Antiguo 23/02/2011, 18:01
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: No funciona validar formulario

si, ya te lo indicaron 2 veces >_>
  #9 (permalink)  
Antiguo 23/02/2011, 18:11
 
Fecha de Ingreso: septiembre-2010
Mensajes: 33
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: No funciona validar formulario

Si te has tomado la molestia de leer todo el tema, te darás cuenta que he dicho que "soy muy notavo en el tema"

Y si, dos veces, de dos formas distintas. Cual es?

onsubmit="valida();return false;"

onsubmit=return (valida(2) && valida(1) && valida(0))

Edito: Sigue pasando derecho, no valida...
  #10 (permalink)  
Antiguo 23/02/2011, 18:36
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: No funciona validar formulario

1. La forma en que te indiqué es para orientarte, no te puse exactamente como lo deberías poner, lo demás deberías deducirlo.
2. Veo que tu función de llama valido y no valida, así que técnicamente debe ser:

onsubmit="(valido(0);valido(1);valido(2);return false;)";

3. Esa es una forma muy mala de hacer validaciones, campo por campo.
4. Trata de tomar ideas y no busques las cosas hechas.

Etiquetas: formulario
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 04:39.