Foros del Web » Programando para Internet » Javascript »

novatisimo en js no sabe como validar un formulario

Estas en el tema de novatisimo en js no sabe como validar un formulario en el foro de Javascript en Foros del Web. hola chicos e creado este monstruo de codigo pero no tengo ni idea de por que no valida al pulsar el boton si alguin me ...
  #1 (permalink)  
Antiguo 05/05/2009, 10:34
 
Fecha de Ingreso: marzo-2009
Mensajes: 23
Antigüedad: 15 años
Puntos: 0
novatisimo en js no sabe como validar un formulario

hola chicos e creado este monstruo de codigo pero no tengo ni idea de por que no valida al pulsar el boton si alguin me ayuda y depaso me explica mi fallo se lo agradeceré toda mi vida
Código:
<div id="body">
<SCRIPT >
function validacion () {
if (formulario.nombre.value == ""){alert('por favor, introduzca su nombre') formulario.nombre.focus(); return; }}
	if (formulario.email.value == ""){alert('por favor, introduzca su direccion de email') formulario.email.focus(); return; }}
	if (formulario.telefono.value == "") {alert('por favor introduzca su telefono') formulario.email.focus(); return; }}
formulario.submit();
}
</SCRIPT>
<NOSCRIPT>
Este navegador no comprende los scripts que se están ejecutando, debes actualizar tu versión de navegador a una más reciente.
<br><br>

</NOSCRIPT> 
<div id="fcontact">
<form name="formulario" action="boligrafos/fcontacto.php" method="post">
 <div id=iz>
  <div id="titulo">
  <h4>nombre</h4>
  </div>
  <div id="contenido">
  <INPUT type="text" size="30" name="nombre"><BR>
  </div>
  <div id="titulo">
  <h4>empresa</h4>
  </div>
  <div id="contenido">
  <INPUT type="text" name="empresa"><BR>
  </div>
   <div id="titulo">
  <h4>pais</h4>
  </div>
  <div id="contenido">
  <INPUT type="text" size="15" name="pais"><BR>
  </div>
  </div>
  <div id="der">
  <div id="titulo">
  <h4>direccion</h4>
  </div>
  <div id="contenido">
  <INPUT type="text" size="40" name="direccion"><BR>
  </div>
  <div id="titulo">
  <h4>provincia</h4>
  </div>
  <div id="contenido">
  <INPUT type="text" size="15" name="provincia"><BR>
  </div>
  <div id="titulo">
  <h4> email</h4>
  </div>
  <div id="contenido">
  <INPUT type="text" size="30" name="email" id="email">
  </div>
  </div>
  <div="cen">
  <div id="titulo">
  <h4>telefono</h4>
  </div>
  <div id="contenido">
  <INPUT type="text" size="9" name="telefono"><BR>
  </div>
  <div id="titulo">
  <h4>remitente<h4>
  </div>
  <div id="contenido">
  <INPUT type="radio" name="informacion" value="mantenimiento"> Si quiere contactar con el webmaster.<BR>
  <INPUT type="radio" name="informacion" value="informacion"> Si quiere obtener informacion sobre nuestros productos.<BR>
  </div>
  <div id="titulo">
  <h4>mensaje</h4>
  </div>
  <div id="contenido">
  <textarea type="text" size="1000" cols="50" rows="5" name="mensaje"></textarea>
  </div>
  <div>
    <input type="button" onClick="Validacion(this.form)" value="Enviar"> 
  </div>
  </form>
  </div>
  
</div>
  #2 (permalink)  
Antiguo 05/05/2009, 10:44
Avatar de Crazy_Xavy  
Fecha de Ingreso: julio-2005
Mensajes: 24
Antigüedad: 18 años, 9 meses
Puntos: 0
Respuesta: novatisimo en js no sabe como validar un formulario

Si el nombre de la función es validación, no puedes llamarla como Validación. Y otra cosa, utiliza el getElementById si quieres más compatibilidad.
  #3 (permalink)  
Antiguo 05/05/2009, 10:52
 
Fecha de Ingreso: marzo-2009
Mensajes: 23
Antigüedad: 15 años
Puntos: 0
Respuesta: novatisimo en js no sabe como validar un formulario

Cita:
Iniciado por Crazy_Xavy Ver Mensaje
Si el nombre de la función es validación, no puedes llamarla como Validación. Y otra cosa, utiliza el getElementById si quieres más compatibilidad.
lo primero me pasa por copy pasta y sigo sin hacerlo funcionar, puedes explicarme un poco como va lo del "getElementById"
  #4 (permalink)  
Antiguo 05/05/2009, 12:29
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Respuesta: novatisimo en js no sabe como validar un formulario

1:
m:<form name="formulario" action="boligrafos/fcontacto.php" method="post">
b:<form id="formulario" name="formulario" action="boligrafos/fcontacto.php" method="post">

2: para no confundirte por que no dejas esto:
<input type="button" onClick="Validacion(this.form)" value="Enviar">

por esto:
<form id="formulario" name="formulario" action="boligrafos/fcontacto.php" onSubmit="validacion" method="post">

por que en la funcion validacion tampoco estas recibiendo ningun valor cuando le mandas el this.form

Cita:
lo primero me pasa por copy pasta y sigo sin hacerlo funcionar, puedes explicarme un poco como va lo del "getElementById"
if (document.getElementById("nombre").value == "")

esa puede ser una, otra seria:

formulario = document.getElementById("formulario");

y ahi si
if (formulario.nombre.value==""){...}


espero que hayas entendido y que yo no me haya equivocado xD
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #5 (permalink)  
Antiguo 05/05/2009, 12:29
Avatar de Crazy_Xavy  
Fecha de Ingreso: julio-2005
Mensajes: 24
Antigüedad: 18 años, 9 meses
Puntos: 0
Respuesta: novatisimo en js no sabe como validar un formulario

Tenías dobles llaves al declarar la función y te olvidaste de los ; en los alert.

Sobre lo de "document.getElementById"... Me vas a matar, pero no lo sé. Sólo sé que si no lo utilizo, el Firefox no se traga el código. Simplemente le pongo id a los input y luego obtengo su valor mediante document.getElementById("id").value

Código PHP:
<div id="body">
<
SCRIPT>
function 
validacion() {
if (
document.getElementById("nombre").value == "")
        {
            
alert("por favor, introduzca su nombre"); 
            
formulario.nombre.focus(); 
            return; 
        }

        if (
document.getElementById("email").value == "")
        {
            
alert("por favor, introduzca su direccion de email"); 
            
formulario.email.focus(); 
            return; 
        }
        
        if (
document.getElementById("telefono").value == ""
            {
                
alert("por favor introduzca su telefono"); 
                
formulario.email.focus(); 
                return; 
            }
        
formulario.submit();
}
</SCRIPT>
<NOSCRIPT>
Este navegador no comprende los scripts que se están ejecutando, debes actualizar tu versión de navegador a una más reciente.
<br><br>

</NOSCRIPT> 
<div id="fcontact">
<form name="formulario" action="boligrafos/fcontacto.php" method="post">
 <div id=iz>
  <div id="titulo">
  <h4>nombre</h4>
  </div>
  <div id="contenido">
  <INPUT type="text" size="30" name="nombre" id="nombre"><BR>
  </div>
  <div id="titulo">
  <h4>empresa</h4>
  </div>
  <div id="contenido">
  <INPUT type="text" name="empresa" id="empresa"><BR>
  </div>
   <div id="titulo">
  <h4>pais</h4>
  </div>
  <div id="contenido">
  <INPUT type="text" size="15" name="pais" id="pais"><BR>
  </div>
  </div>
  <div id="der">
  <div id="titulo">
  <h4>direccion</h4>
  </div>
  <div id="contenido">
  <INPUT type="text" size="40" name="direccion" id="direccion"><BR>
  </div>
  <div id="titulo">
  <h4>provincia</h4>
  </div>
  <div id="contenido">
  <INPUT type="text" size="15" name="provincia" id="provincia"><BR>
  </div>
  <div id="titulo">
  <h4> email</h4>
  </div>
  <div id="contenido">
  <INPUT type="text" size="30" name="email" id="email">
  </div>
  </div>
  <div="cen">
  <div id="titulo">
  <h4>telefono</h4>
  </div>
  <div id="contenido">
  <INPUT type="text" size="9" name="telefono" id="telefono"><BR>
  </div>
  <div id="titulo">
  <h4>remitente<h4>
  </div>
  <div id="contenido">
  <INPUT type="radio" name="informacion" value="mantenimiento"> Si quiere contactar con el webmaster.<BR>
  <INPUT type="radio" name="informacion" value="informacion"> Si quiere obtener informacion sobre nuestros productos.<BR>
  </div>
  <div id="titulo">
  <h4>mensaje</h4>
  </div>
  <div id="contenido">
  <textarea type="text" size="1000" cols="50" rows="5" name="mensaje"></textarea>
  </div>
  <div>
    <input type="button" onClick="validacion(this.form)" value="Enviar"> 
  </div>
  </form>
  </div>
  
</div> 
Prueba así.
  #6 (permalink)  
Antiguo 06/05/2009, 01:41
 
Fecha de Ingreso: marzo-2009
Mensajes: 23
Antigüedad: 15 años
Puntos: 0
Respuesta: novatisimo en js no sabe como validar un formulario

esto puede ser por que este utilizando php?
por que me sigue sin funcionar
por cierto gracias a todos
ninja edit: ya esta !!!!!

Última edición por deathsoul; 06/05/2009 a las 02:00
  #7 (permalink)  
Antiguo 06/05/2009, 02:16
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: novatisimo en js no sabe como validar un formulario

Hola:

Ya que eres "novatísimo" y estás apreniendo, te recomiendo que aprendas "bien"

Los formularios que se envían usando el método submit se consideran "inaccesibles" porque quienes no tengan javascript jamás lo enviarán... lo recomendable es usar botones del tipo submit y la validación a partir del evento:
onsubmit="return validar(this)"...

De esa manera si tus visitantes no disponen de javascript envían el formulario de todas formas, y los que lo tienen disponen de una buena validación... adicionalmente se aconseja una validación (más segura) en el servidor.

Un tuto: El abc de los formularios

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 06/05/2009, 04:10
 
Fecha de Ingreso: marzo-2009
Mensajes: 23
Antigüedad: 15 años
Puntos: 0
Respuesta: novatisimo en js no sabe como validar un formulario

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

Ya que eres "novatísimo" y estás apreniendo, te recomiendo que aprendas "bien"

Los formularios que se envían usando el método submit se consideran "inaccesibles" porque quienes no tengan javascript jamás lo enviarán... lo recomendable es usar botones del tipo submit y la validación a partir del evento:
onsubmit="return validar(this)"...

De esa manera si tus visitantes no disponen de javascript envían el formulario de todas formas, y los que lo tienen disponen de una buena validación... adicionalmente se aconseja una validación (más segura) en el servidor.


Saludos
muchas gracias ya lo cambie todo, el problema es que solo se php y si meto demasiado php el servidor se colapsa entonces prefiero ponerlo en javascript aunque no sepa y asegurarme de que el server vaya fino XD
por ciertos tu articulo esta muy bien me esta ayudando en esta ardua tarea
  #9 (permalink)  
Antiguo 06/05/2009, 06:47
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Respuesta: novatisimo en js no sabe como validar un formulario

por una validacion de un formulario no creo que se colapse, eres muy exagerado xD wajajaja
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #10 (permalink)  
Antiguo 06/05/2009, 10:15
Avatar de TonyChile  
Fecha de Ingreso: marzo-2009
Ubicación: Maipú, Santiago
Mensajes: 422
Antigüedad: 15 años, 1 mes
Puntos: 7
Respuesta: novatisimo en js no sabe como validar un formulario

Cita:
deathsoul
el problema es que solo se php y si meto demasiado php el servidor se colapsa
Mmmmmmmmmmmmmmmmm como puede ser eso colapsarte por algo asi

Cita:
lobo_php
por una validacion de un formulario no creo que se colapse, eres muy exagerado xD wajajaja
Creo que si estas exagerando demasiado con lo del servidor.

Me alegro que te resultara finalmente pero para la proxima al copiar un codigo lo primero que debes hacer es tratar de entenderlo y asi no tendras tantos problemas
__________________
Chilenos 100% Chilenos de Corazón
"Nuestra mayor gloria no está en no caer jamás, sino en levantarnos cada vez que caigamos"
  #11 (permalink)  
Antiguo 07/05/2009, 03:54
 
Fecha de Ingreso: marzo-2009
Mensajes: 23
Antigüedad: 15 años
Puntos: 0
Respuesta: novatisimo en js no sabe como validar un formulario

Cita:
Iniciado por TonyChile Ver Mensaje
Mmmmmmmmmmmmmmmmm como puede ser eso colapsarte por algo asi


Creo que si estas exagerando demasiado con lo del servidor.

Me alegro que te resultara finalmente pero para la proxima al copiar un codigo lo primero que debes hacer es tratar de entenderlo y asi no tendras tantos problemas
no exagero el servidor es bastante viejo y tengo que andar con mucho cuidado y entender entiendo el codigo lo que no entiendo es como no me funciona XD

por cierto alguien sabe como después de validar los el formulario en caso negativo no reiniciar la pagina y no enviarla al enlace para su procesado

Última edición por deathsoul; 07/05/2009 a las 04:33
  #12 (permalink)  
Antiguo 07/05/2009, 06:22
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Respuesta: novatisimo en js no sabe como validar un formulario

mira por muy viejo q sea no se colapsa por lo que hagas sino por la cantidad de personas que esten accediendo a el (eso creo xD)

por otro lado en el evento onClick() del boton puedes hacer lo siguiente:

Código html:
Ver original
  1. <form action="otra_pagina.php" name="formulario" id="formulario">
  2. <input type="text" id="var1">
  3. <input type="button" onClick="validar()" value="enviar">
  4. </form>

entonces en el evento validar:

Código javascript:
Ver original
  1. function validar(){
  2.   var enviar=true;
  3.   if(document.getElementById("var1").value == ""){enviar = false; alert("te faltan cosas por llenar :(");}
  4.   else {document.formulario.submit;}
  5. }

tal vez eso te pueda ayudar. si estan correctas las cosas pues te envia, sino pues no xD
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #13 (permalink)  
Antiguo 07/05/2009, 09:29
 
Fecha de Ingreso: marzo-2009
Mensajes: 23
Antigüedad: 15 años
Puntos: 0
Respuesta: novatisimo en js no sabe como validar un formulario

Cita:
Iniciado por lobo_php Ver Mensaje
mira por muy viejo q sea no se colapsa por lo que hagas sino por la cantidad de personas que esten accediendo a el (eso creo xD)

por otro lado en el evento onClick() del boton puedes hacer lo siguiente:

Código html:
Ver original
  1. <form action="otra_pagina.php" name="formulario" id="formulario">
  2. <input type="text" id="var1">
  3. <input type="button" onClick="validar()" value="enviar">
  4. </form>

entonces en el evento validar:

Código javascript:
Ver original
  1. function validar(){
  2.   var enviar=true;
  3.   if(document.getElementById("var1").value == ""){enviar = false; alert("te faltan cosas por llenar :(");}
  4.   else {document.formulario.submit;}
  5. }

tal vez eso te pueda ayudar. si estan correctas las cosas pues te envia, sino pues no xD
asin XD

Código PHP:
function validacion() {
var 
enviar true;
var 
document.getElementById("email").value;
var 
filter=/^[A-Za-z][A-Za-z0-9_]*@[A-Za-z0-9_]+.[A-Za-z0-9_.]+[A-za-z]$/;

if (
document.getElementById("nombre").value == "")
        { 
            
enviar false;
            
alert("por favor, introduzca su nombre"); 
            
formulario.nombre.focus("nombre"); 
            
        } else {
        if (
document.getElementById("telefono").value == ""
            {
                
enviar false;
                
alert("por favor, introduzca su telefono"); 
                
formulario.email.focus("telefono"); 
            } else{ 
            
        
        if (
s.length == )
        {
        
enviar false
        alert
("Ingrese una dirección de correo válida");
        }
        else
        {
        
enviar true
        
if (filter.test(s))
        }
        else
        {
        
enviar false
        alert
("Ingrese una dirección de correo válida");
        
formulario.email.focus("email");
        }
        else
        {
        
document.formulario.submit;
        }

  #14 (permalink)  
Antiguo 07/05/2009, 10:19
Avatar de lobo_php  
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 5 meses
Puntos: 75
Respuesta: novatisimo en js no sabe como validar un formulario

else
{
enviar = true
if (filter.test(s))
}

quita ese enviar = true, ya lo definiste arriba, bien abajo antes de cerrar el } de la funcion, has la condicion if(enviar){ document.formulario.submit;}

y ya.

o es q como lo tienes te funcioo? no entendi lo de "asin XD"
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175
  #15 (permalink)  
Antiguo 08/05/2009, 03:23
 
Fecha de Ingreso: marzo-2009
Mensajes: 23
Antigüedad: 15 años
Puntos: 0
Respuesta: novatisimo en js no sabe como validar un formulario

ya he acabado el resultado es el siguiente

Código PHP:
function validar () {
var 
email document.getElementById("nombre").value;
var 
nombre document.getElementById("nombre").value;
var 
telf =document.getElementById("telefono").value;
var 
email document.getElementById("email").value;
var 
enviar true;
var 
filtro =/^[A-Za-z][A-Za-z0-9_]*@[A-Za-z0-9_]+.[A-Za-z0-9_.]+[A-za-z]$/;

if (
nombre == ""
{
enviar false
alert 
("introduzca su nombre");
}
if (
telf <= 8)
{
enviar false
alert 
("introduzca su numero de telefono");
}

if (
email=="")
{
enviar false
}
if ( 
filtro.test(email))
{
return 
true;
}
else
{
enviar false;
alert("Ingrese una dirección de correo válida");
}

if (
enviar == true)
{
 
document.formulario.submit;
}
else
{
return 
false;
}

quedan algunas cosas por mejorar y tal, pero tengo una duda que me corrroe y es que siempre envia los datos aunque no validen, por favo a ver si algun alma caritativa me ayuda
vuelvo a repetir ¡¡Gracias por ayudarme!!

SOLUCIONADO

Última edición por deathsoul; 08/05/2009 a las 04:11
  #16 (permalink)  
Antiguo 08/05/2009, 10:31
Avatar de TonyChile  
Fecha de Ingreso: marzo-2009
Ubicación: Maipú, Santiago
Mensajes: 422
Antigüedad: 15 años, 1 mes
Puntos: 7
Respuesta: novatisimo en js no sabe como validar un formulario

Si no te valida es porque no entras a la validacion eso debe ser porq lo estas haciendo mal
Mmmmmmmmmmmm pusiste tu funcion entre <script LANGUAGE="JavaScript"> pones el codigo dentro de estas etiquetas </script>

Y en donde llamas a la funcion?

como te dijo lobo_php deberia funcionar
Cita:
lobo_php
<form action="otra_pagina.php" name="formulario" id="formulario">
<input type="text" id="var1">
<input type="button" onClick="validar()" value="enviar">
</form>

}
__________________
Chilenos 100% Chilenos de Corazón
"Nuestra mayor gloria no está en no caer jamás, sino en levantarnos cada vez que caigamos"
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 11:11.