Foros del Web » Programando para Internet » Javascript »

Validar formulario con Javascript

Estas en el tema de Validar formulario con Javascript en el foro de Javascript en Foros del Web. Bueno arme unas lineas para que por medio de Javascript me controle si algunos campos del formulario estan completos pero no me funciona. El formulario ...
  #1 (permalink)  
Antiguo 15/07/2010, 18:40
Avatar de aguila_393  
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 406
Antigüedad: 16 años, 7 meses
Puntos: 1
Validar formulario con Javascript

Bueno arme unas lineas para que por medio de Javascript me controle si algunos campos del formulario estan completos pero no me funciona.
El formulario es ese:
http://www.alexismoyano.com.ar/formulario/form.html

En el codigo fuente pueden ver como esta armado todo.

Espero a ver si alguien sabe como solucionarlo.

Gracias ;).
  #2 (permalink)  
Antiguo 16/07/2010, 03:57
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 11 meses
Puntos: 310
Respuesta: Validar formulario con Javascript

Hola, creo que tienes varios errores en el código, vamos a depurarlo.
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function validar(formulario) {
  3.     if (formulario.nombre.value.length < 4) {
  4.     alert("Escriba por lo menos 4 caracteres en el campo 'Nombre'.");
  5.         //aquí debes usar comillas simples
  6.         //para no dar a entender que finalizas la cadena
  7.     formulario.nombre.focus();
  8.     return (false);
  9.     }
  10.     var aceptados = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚabcdefghijklmnñopqrstuvwxyzáéíóú ";
  11.     var cadena = formulario.cadena.value;
  12.     var Validado = true;
  13.     for (i = 0; i < cadena.length; i++) {
  14.     ch = cadena.charAt(i);
  15.     for (j = 0; j < aceptados.length; j++){
  16.     if (ch == aceptados.charAt(j))
  17.     break;
  18.     if (j == aceptados.length) {
  19.     Validado = false;
  20.     break;
  21.     }
  22.         }
  23.     }
  24.     if (!Validado) {
  25.     alert("Escriba sólo letras en el campo 'cadena'.");
  26.     formulario.cadena.focus();
  27.     return (false);
  28.     }
  29.         //a partir de aquí tienes mal todos los nombres
  30.         //de las variables, porque ya han sido declaradas anteriormente.
  31.         //por tanto debes buscar otro, o ponerles el mismo nombre
  32.         //y una barra baja para que se diferencien
  33.         //además de eso no hay nada mal, pero en vez
  34.         //de ir carácter por carácter es más fácil usar la función isNaN()
  35.     var aceptados = "0123456789";
  36.     var cadena = formulario.tel.value;
  37.     var Validado = true;
  38.     var decPoints = 0;
  39.     var allNum = "";
  40.     for (i = 0; i < cadena.length; i++) {
  41.         ch = cadena.charAt(i);
  42.         for (j = 0; j < aceptados.length; j++)
  43.         if (ch == aceptados.charAt(j))
  44.         break;
  45.         if (j == aceptados.length) {
  46.         Validado = false;
  47.         break;
  48.         }
  49.         allNum += ch;
  50.         }
  51.         if (!Validado) {
  52.         alert("Escriba sólo dígitos en el campo 'Telefono'.");
  53.         formulario.tel.focus();
  54.         return (false);
  55.         }
  56.     if ((formulario.mail.value.indexOf ('@', 0) == -1)||(formulario.correo.value.length < 5)) {
  57.         alert("Escriba una dirección de correo válida en el campo "Mail".");
  58.         return (false);
  59.         }
  60.         return (true);
  61.         }
  62.        //en teoría este último if valida el mail, pero si
  63.        //te das cuenta, si yo pongo @aaaa me lo valida,
  64.        //por tanto debes usar una expresión regular.
  65.        //busca un poco por internet
  66. </script>

También me fijé en que usas CSS pero sin embargo pones 400 &nbsp; para que te quede todo alineado, cuando es más fácil usar margin-left y margin-right.
Saludos (:
  #3 (permalink)  
Antiguo 16/07/2010, 09:14
Avatar de aguila_393  
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 406
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Validar formulario con Javascript

Probe haciendo los cambios que me comentaste pero sigue igual, el problema esta en que no conecta con la funcion de Javascript ya que probe poniendo:
Código HTML:
Ver original
  1. <script type="text/javascript">
  2. function validar(formulario) {
  3.     alert("Escriba sólo letras en el campo "Nombre".");
  4.     }
  5.  
  6. <!--
  7. Para que solo muestre un alerta cuadno se envie.
  8. -->
  9. <form method="post" name="valida" onsubmit= "return validar(this)" action="envio.php">

Y no hace nada, es como si no leyera el script.
  #4 (permalink)  
Antiguo 16/07/2010, 09:36
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 11 meses
Puntos: 310
Respuesta: Validar formulario con Javascript

Esque si miras la consola de errores seguramente te dirá algo como que Nombre is undefined, porque sigues usando las comillas dobles. Para que no pase eso alterna las dobles con las simples.
Saludos (:
  #5 (permalink)  
Antiguo 16/07/2010, 09:50
Avatar de aguila_393  
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 406
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Validar formulario con Javascript

Cita:
Iniciado por _cronos2 Ver Mensaje
Esque si miras la consola de errores seguramente te dirá algo como que Nombre is undefined, porque sigues usando las comillas dobles. Para que no pase eso alterna las dobles con las simples.
Saludos (:
No afectaba, de todas maneras se las saque y sigue sin mostrar ningun mensaje. Estoy googleando a ver porque estoy seguro que debe ser algo sobre como tengo enlazado el formulario con los scripts. Si se te ocurre algo dime ;).

Saludos y gracias deneuvo.
  #6 (permalink)  
Antiguo 16/07/2010, 10:35
 
Fecha de Ingreso: febrero-2008
Ubicación: Mexico, D.F.
Mensajes: 23
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Validar formulario con Javascript

Yo te recomendaria que el submit lo controlaras en la funcion

y pondria asi tu funcion:

<script type="text/javascript">
function validar() {

var d = document.forms[0]; //Referencia al formulario
var cadenaValida = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚ" + "abcdefghijklmnñopqrstuvwxyzáéíóú";

if (d.nombre.value.length < 4) {
alert("Escriba por lo menos 4 caracteres en el campo Nombre.");
d.nombre.focus();
return false;
}
//tus demas validaciones
// ......

d.submit(); //Submit al form
}
</script>

y en el formulario lo cambiaria asi:

<form method="post" name="valida" action="envio.php">

quitandole en onsubmit

y en el boton de submit lo volveria button asi:

<input type="button" value="Enviar" onClick="validar();" />

y por ultimo estas poniedo mal los alerts

alert("Escriba sólo letras en el campo "Nombre".");

serian asi

alert('Escriba sólo letras en el campo "Nombre".');

o

alert("Escriba sólo letras en el campo \"Nombre\".");

Última edición por zodgyy; 16/07/2010 a las 10:49
  #7 (permalink)  
Antiguo 17/07/2010, 13:22
Avatar de aguila_393  
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 406
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Validar formulario con Javascript

Cita:
Iniciado por zodgyy Ver Mensaje
Yo te recomendaria que el submit lo controlaras en la funcion

y pondria asi tu funcion:

<script type="text/javascript">
function validar() {

var d = document.forms[0]; //Referencia al formulario
var cadenaValida = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚ" + "abcdefghijklmnñopqrstuvwxyzáéíóú";

if (d.nombre.value.length < 4) {
alert("Escriba por lo menos 4 caracteres en el campo Nombre.");
d.nombre.focus();
return false;
}
//tus demas validaciones
// ......

d.submit(); //Submit al form
}
</script>

y en el formulario lo cambiaria asi:

<form method="post" name="valida" action="envio.php">

quitandole en onsubmit

y en el boton de submit lo volveria button asi:

<input type="button" value="Enviar" onClick="validar();" />

y por ultimo estas poniedo mal los alerts

alert("Escriba sólo letras en el campo "Nombre".");

serian asi

alert('Escriba sólo letras en el campo "Nombre".');

o

alert("Escriba sólo letras en el campo \"Nombre\".");

Ahora si! GRACIAS CAPO
  #8 (permalink)  
Antiguo 17/07/2010, 19:28
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Respuesta: Validar formulario con Javascript

Cita:
Iniciado por aguila_393 Ver Mensaje
Ahora si! GRACIAS CAPO
¡Muy mal!

La forma correcta es la que estabas usando al principio: Los formularios se validan desde el evento submit, y siempre que se trate de cosas importantes es aconsejable una doble validación (en el servidor la importante, y en el navegador, con menos importancia, pero ahorra envíos que no valgan...

Si tus visitantes desactivan javascript, jamás podrán enviar tus formularios...

Mi recomendación es que lo hagas bien. Si no te sale es porque tienes algún error... consulta las herramientas de los navegadores para repararlos.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #9 (permalink)  
Antiguo 17/07/2010, 20:27
Avatar de aguila_393  
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 406
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Validar formulario con Javascript

Cita:
Iniciado por caricatos Ver Mensaje
¡Muy mal!

La forma correcta es la que estabas usando al principio: Los formularios se validan desde el evento submit, y siempre que se trate de cosas importantes es aconsejable una doble validación (en el servidor la importante, y en el navegador, con menos importancia, pero ahorra envíos que no valgan...

Si tus visitantes desactivan javascript, jamás podrán enviar tus formularios...

Mi recomendación es que lo hagas bien. Si no te sale es porque tienes algún error... consulta las herramientas de los navegadores para repararlos.

Saludos
Ya tengo armada otra validacion que la hace antes de enviar y la arme en PHP pero el problema era lo del javascript. Igual no entendi porque decis que esta "Muy Mal!", desde el principio el problema que tenia era para armar la validacion en Javascript y aunque lo hubiese armado como al principio si alguien tiene desactivado Javascript es lo mismo.

Gracias y me gustaria si me pudieras explicar porque esta mal asi.

Saludos
  #10 (permalink)  
Antiguo 18/07/2010, 02:30
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Respuesta: Validar formulario con Javascript

Hola:

Las validaciones que realmente valen (o importan) son las del servidor, y las de los navegadores pueden ser muy valiosas si son útiles, pero si se desactiva javascript, solo vale la del servidor, y para que lleguen esos datos al servidor, el botón de envío debe ser del tipo submit... Prueba a desactivar javascript e intentar enviar el formulario... ¡a que no se puede!. Si el botón fuese tipo submit, el envío se realizaría y se validaría en el server.

La técnica de la validación con javascript es bien simple: al evento se le asigna el valor false para la cancelación: onsubmit="return false".

Solo tienes que cambiar ese false por una función que devuelva false cuando no valide... sí, es así de sencillo, pero si tu función validadora tiene algún error, no llegará a la instrucción del "return false" y se abortará enviando el formulario.

En resúmen, si lo haaces bien y sin errores es útil; creo que solo te falta depurar correctamente tu código, el consejo que solemos dar es usar las herramientas que tienen los navegadores: la más sencilla es la consola de errores que casi todos tienen.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #11 (permalink)  
Antiguo 18/07/2010, 09:48
Avatar de aguila_393  
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 406
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Validar formulario con Javascript

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

Las validaciones que realmente valen (o importan) son las del servidor, y las de los navegadores pueden ser muy valiosas si son útiles, pero si se desactiva javascript, solo vale la del servidor, y para que lleguen esos datos al servidor, el botón de envío debe ser del tipo submit... Prueba a desactivar javascript e intentar enviar el formulario... ¡a que no se puede!. Si el botón fuese tipo submit, el envío se realizaría y se validaría en el server.

La técnica de la validación con javascript es bien simple: al evento se le asigna el valor false para la cancelación: onsubmit="return false".

Solo tienes que cambiar ese false por una función que devuelva false cuando no valide... sí, es así de sencillo, pero si tu función validadora tiene algún error, no llegará a la instrucción del "return false" y se abortará enviando el formulario.

En resúmen, si lo haaces bien y sin errores es útil; creo que solo te falta depurar correctamente tu código, el consejo que solemos dar es usar las herramientas que tienen los navegadores: la más sencilla es la consola de errores que casi todos tienen.

Saludos
Ahora entiendo, no me habia dado cuenta que si desactivaba Javascript no me dejaria enviar el formulario. Vere si logro hacerlo como antes, seguramente el error era que no le ponia al submit falso.

Gracias ;).
  #12 (permalink)  
Antiguo 18/07/2010, 18:35
Avatar de aguila_393  
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 406
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Validar formulario con Javascript

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

Las validaciones que realmente valen (o importan) son las del servidor, y las de los navegadores pueden ser muy valiosas si son útiles, pero si se desactiva javascript, solo vale la del servidor, y para que lleguen esos datos al servidor, el botón de envío debe ser del tipo submit... Prueba a desactivar javascript e intentar enviar el formulario... ¡a que no se puede!. Si el botón fuese tipo submit, el envío se realizaría y se validaría en el server.

La técnica de la validación con javascript es bien simple: al evento se le asigna el valor false para la cancelación: onsubmit="return false".

Solo tienes que cambiar ese false por una función que devuelva false cuando no valide... sí, es así de sencillo, pero si tu función validadora tiene algún error, no llegará a la instrucción del "return false" y se abortará enviando el formulario.

En resúmen, si lo haaces bien y sin errores es útil; creo que solo te falta depurar correctamente tu código, el consejo que solemos dar es usar las herramientas que tienen los navegadores: la más sencilla es la consola de errores que casi todos tienen.

Saludos

Disculpa, me podrias mostrar como armar el boton del submit para que quede return false?

Código HTML:
Ver original
  1. <form method="post" name="valida" action="envio.php" onsubmit="return false; validar();">
  2. <input type="submit" value="Enviar" />
  3. </form>


Asi como lo puse recien?

Debo haber puesto algo mal porque puse eso que publique recien y ya denuevo no me funciona nada, ni envia el formulario ni me salen los alertas de javascript.

Última edición por aguila_393; 18/07/2010 a las 18:43
  #13 (permalink)  
Antiguo 18/07/2010, 19:18
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 11 meses
Puntos: 310
Respuesta: Validar formulario con Javascript

No se envía porque hay un return false, lo que tienes que devolver es validar(), que a su vez devolverá true o false.
Saludos (:
  #14 (permalink)  
Antiguo 18/07/2010, 19:25
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Respuesta: Validar formulario con Javascript

Hola:

Lee este tutorial: El abc de los formularios donde explico lo de las validaciones y pongo algunos ejemplos básicos... no es difícil.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #15 (permalink)  
Antiguo 18/07/2010, 19:57
Avatar de aguila_393  
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 406
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Validar formulario con Javascript

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

Lee este tutorial: El abc de los formularios donde explico lo de las validaciones y pongo algunos ejemplos básicos... no es difícil.

Saludos
Gracias, habia estado buscando en muchos lugares un tutorial para entender bien como hacerlo pero todos lo hacian de una manera diferente y por eso la confusion. Ahora pude hacerlo . Gracias denuevo

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 13:53.