Foros del Web » Programando para Internet » Javascript »

formulario de consulta con validacion en Javascript

Estas en el tema de formulario de consulta con validacion en Javascript en el foro de Javascript en Foros del Web. Estoy tratando de crear un formulario que sea lo mas semantico posible y validar sus campos a traves de Javascript. Para ello estoy intentando utilizar ...
  #1 (permalink)  
Antiguo 20/05/2010, 12:29
 
Fecha de Ingreso: marzo-2008
Mensajes: 26
Antigüedad: 16 años, 1 mes
Puntos: 0
formulario de consulta con validacion en Javascript

Estoy tratando de crear un formulario que sea lo mas semantico posible y validar sus campos a traves de Javascript. Para ello estoy intentando utilizar manejadores de eventos semanticos tal y como explican en [URL="http://www.librosweb.es/javascript/capitulo6/modelo_basico_de_eventos1.html"]www.librosweb.es (Introduccion a Javascript - 6.2.2.4. Manejadores de eventos semánticos)[/URL] pero no consigo hacerlo funcionar.

En lugar de analizarme todos los campos solo me examina hasta el alert ('Por favor, escriba su NOMBRE'); del campo1 que me esta fallando?

Aqui esta el codigo XHTML:
Código HTML:
Ver original
  1. <form method="post" action="index.php?sec=contacto" id="fConsulta" name="fConsulta">
  2.    <label for="nombre">Nombre: </label>
  3.       <input type="text" name="nombre" id="nombre" />
  4.    <br class="clear" />
  5.    <label for="telefono">Tel&eacute;fono: </label>
  6.       <input type="text" name="telefono" id="telefono" />
  7.    <br class="clear" />
  8.    <input type="submit" name="enviar" id="enviar" value="Enviar"/>
  9.    <br class="clear" />
  10. </form>


y aqui mi codigo Javascript que se carga en la cabecera del index.php
Código Javascript:
Ver original
  1. function validarFormulario() {
  2.    campo1 = document.getElementById("nombre");
  3.    campo2 = document.getElementById("telefono");
  4.    valor1 = campo1.value;
  5.    valor2 = campo2.value;
  6.  
  7.    //campo1 (nombre)
  8.    if (valor1==null || valor1.length==0 || /^\s+$/.test(valor1)) {
  9.       alert ('Por favor, escriba su NOMBRE');
  10.        ruta1.parentNode.style.background = "#FFDDDD";
  11.       ruta1.focus();
  12.       return false;
  13.    } else {
  14.       ruta1.parentNode.style.background = "transparent";
  15.    }
  16.  
  17.    //campo2 (telefono)
  18.    if (valor2==null || valor2.length!=9 || /^\d+$/.test(valor2)) {
  19.       alert ('Por favor, escriba su numero de TELEFONO o MOVIL');
  20.        ruta2.parentNode.style.background = "#FFDDDD";
  21.       ruta2.focus();
  22.       return false;
  23.    } else {
  24.       ruta2.parentNode.style.background = "transparent";
  25.    }
  26. }
  27.  
  28. window.onload = function(){
  29. document.getElementById("enviar").onsubmit=validarFormulario;
  30. }
  #2 (permalink)  
Antiguo 20/05/2010, 14:58
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: formulario de consulta con validacion en Javascript

Hola

Prueba así

Código Javascript:
Ver original
  1. var patron=new RegExp(/^\s+|\s+$/);
  2. ...
  3. if (valor1==null || valor1.length==0 || patron.test(valor1)) {

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 21/05/2010, 05:42
 
Fecha de Ingreso: marzo-2008
Mensajes: 26
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: formulario de consulta con validacion en Javascript

He probado a alterar las acciones dentro de cada if de la forma siguiente:


Código Javascript:
Ver original
  1. //campo1 (nombre)
  2.    if (valor1==null || valor1.length==0 || /^\s+$/.test(valor1)) {
  3.        campo1.parentNode.style.background = "#FFDDDD";
  4.       campo1.focus();
  5.       alert ('Por favor, escriba su NOMBRE');
  6.       return false;
  7.    } else {
  8.       campo1.parentNode.style.background = "transparent";
  9.    }


Y observo que si me cambia el estilo y me da el foco en ese campo. Pero cuando pulso el boton aceptar de la ventana del alert, el formulario continua haciendo con el evento submit en lugar de detenerlo...

Hay alguna forma de detener el evento submit para que no envie el formulario y me recarge la pagina??
  #4 (permalink)  
Antiguo 21/05/2010, 07:40
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: formulario de consulta con validacion en Javascript

la funcion de validacion la estas agregando al boton submit, debe ser al elemento FORM.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 21/05/2010, 11:33
 
Fecha de Ingreso: marzo-2008
Mensajes: 26
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: formulario de consulta con validacion en Javascript

¿?

zerokilled, eso que has dicho de agregarlo al elemento form me ha dejao un poco pillao...

puedes escribir el codigo para echarle un vistazo? no me imagino como puede ser
  #6 (permalink)  
Antiguo 21/05/2010, 11:39
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: formulario de consulta con validacion en Javascript

lo mismo como estas haciendo con el INPUT submit en el evento onload. pero en lugar del INPUT submit, obtienes la referencia del FORM por su ID, NAME, document.forms.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 24/05/2010, 05:26
 
Fecha de Ingreso: marzo-2008
Mensajes: 26
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: formulario de consulta con validacion en Javascript

ya veo, gracias zerokilled por las respuestas. Entonces el codigo se quedaria así:

Código Javascript:
Ver original
  1. window.onload = function(){  
  2. document.getElementById("fConsulta").onsubmit=validarFormulario;  
  3. }

Al parecer el evento onsubmit solo se puede asociar al elemento FORM y no la los elementos que tenga en su interior^^

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 19:29.