Foros del Web » Programando para Internet » Javascript »

Validator y onclick

Estas en el tema de Validator y onclick en el foro de Javascript en Foros del Web. Buenas, tengo un formulario en mi página, este formulario es validado por un validator.js en javascript cuando se usa el botón submit para ser enviado ...
  #1 (permalink)  
Antiguo 05/08/2010, 10:29
 
Fecha de Ingreso: octubre-2009
Mensajes: 223
Antigüedad: 14 años, 6 meses
Puntos: 2
Validator y onclick

Buenas, tengo un formulario en mi página, este formulario es validado por un validator.js en javascript cuando se usa el botón submit para ser enviado , entonces si algún campo no es correcto aparece una alerta con un mensaje

Luego parte de este formulario quiero imprimirlo mediante javascript

Mis ideas eran
- Meter un evento onclick en el boton submit del formulario, pero mi problema es que ejecuta antes el imprimir que el validator ...
- Enviar el formulario a otra página y en el body poner un onload que recoja los datos del formulario anterior y ejecute un print para imprimir la página que hago, pero no se si va a coger los datos del formulario anterior...

Alguna otra opción más???

gracias
  #2 (permalink)  
Antiguo 05/08/2010, 12:03
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Validator y onclick

En el onclick del submit, aunque mejor en el onsubmit del form, puedes poner
Código HTML:
Ver original
  1. <form onsubmit='return validar(); if(validar()){window.print()}'>

Por otro lado para recoger los datos del formulario puedes usar PHP y meter lo que tú quieras en un div, por ejemplo.

Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #3 (permalink)  
Antiguo 05/08/2010, 12:50
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Validator y onclick

Hola

Piensa en esto, toda aquella función que tenga un return ha de ejecutarse la última. Por ejemplo
Cita:
onclick="unafuncion(); otrafuncion(); return ultimafuncion();"
Luego otra cosa es imprimir parte del formulario. No estoy seguro pero creo que necesitarás usar CSS

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;" />
  #4 (permalink)  
Antiguo 05/08/2010, 15:29
 
Fecha de Ingreso: octubre-2009
Mensajes: 223
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: Validator y onclick

entonces si meto el validator en una funcion tb funciona??

siempre he puesto el validator debajo del formulario, y cuando se manda hace todo solo
  #5 (permalink)  
Antiguo 05/08/2010, 15:37
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Validator y onclick

Hola

Cita:
Iniciado por gspablo Ver Mensaje
entonces si meto el validator en una funcion tb funciona??

siempre he puesto el validator debajo del formulario, y cuando se manda hace todo solo
¿Qué es validator? ¿Algún script pre-fabricado?. No entiendo nada

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;" />
  #6 (permalink)  
Antiguo 06/08/2010, 01:17
 
Fecha de Ingreso: octubre-2009
Mensajes: 223
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: Validator y onclick

es un archivo javascript, validator.js, dentro tiene funciones de comprobacion, para campo vacio, numerico.... este es llamado al hacer el submit del formulario, te pongo parte del código, si la comprobacion es erronea salta un alert

Código Javascript:
Ver original
  1. <script language="JavaScript" type="text/javascript">
  2. var frmvalidator = new Validator("naddenvasespet1l");
  3.  frmvalidator.addValidation("ncantidad","num" ,"La cantidad debe de ser un numero");
  4. frmvalidator.addValidation("ncantidad","req" ,"La cantidad no puede estar vacia ");
  5.  frmvalidator.addValidation("ncantidad","gt=0","La cantidad no puede ser 0       ");
  6. </script>
  #7 (permalink)  
Antiguo 06/08/2010, 02:39
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: Validator y onclick

Hola:

Es muy sencillo hacer nuestras propias validaciones, y llevar el control total de nuestros formularios. Aquí tienes un tuto sobre ello: El abc de los formularios, pero te cuento a groso modo como lo suelo hacer, por si te vale de algo...

La forma de llamar al validador parece que ya la sabes:
<form onsubmit="return validar(this)"...


luego creo un array vacío para los mensajes, y por cada campo a validar, si no la pasa, añado una línea a ese array---

function validar(f) {
mensajes = [];
if (f.nombre.value == "") mensajes.push("El campo nombre no puede estar vacío");
//... el resto de las validaciones aquí.
//...
//Y la terminación:

if (mensajes.length > 0) alert(mensajes.join("\n"));
return (mensajes.length == 0);
}

Facilísimo, y llevas un control absoluto... por cierto, siempre debes complementar la validación en el navegador con una validación exhaustiva en el servidor.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 06/08/2010, 03:06
 
Fecha de Ingreso: octubre-2009
Mensajes: 223
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: Validator y onclick

Caricatos esa funcion es perfecta, no la voy a usar en esta página porque ya esta terminada que sino....

Me queda una duda a ver si se podria hacer, la funcion recibe el formulario y ahora tu haces varios if con el nombre de cada campo y el error que debe mostrar en cada caso, por tanto se hace un if por cada campo

Ahora yo propongo a ver si habria alguna forma de hacer esto, como un bucle, pongo un pseudocodigo, no es codigo estricto
Código Javascript:
Ver original
  1. for (i=0;i<f.length;i++)
  2. {
  3. if (f.campo[i].value == "")   // donde campo[i] seria por ejemplo nombre, apellidos, direccion...
  4.   mensajes.push("El campo campo[i] no puede estar vacío");
  5. }
  6.  
  7. if (mensajes.length > 0) alert(mensajes.join("\n"));
  8. return (mensajes.length == 0);
Con esto lo que intento es mandar un alert por pantalla y que no se mande el formulario porque ha devuelto false
  #9 (permalink)  
Antiguo 06/08/2010, 03:25
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: Validator y onclick

Hola:

Pues viéndolo (tal como dices) como pseudo-código, parece correcto el planteamiento, pero siempre hay distintas maneras de validar, y lo que estás planteando sólo vale para evitar campos vacíos, y todos obligatorios... una variante bastante corriente es en base a expleciones regulares como los emails u otros formatos definidos, tal vez teléfonos, códigos postales/zip, etc, por lo que siempre sería necesario ampliar tu código-base... por ejemplo con parejas campo/tipo...

Se me ocurre también que haya campos opcionales, pero al menos uno relleno, como pedir dirección postal, o correo electrónico o teléfono para contactar... bueno, hay un abanico bastante amplio de opciones como para plantear un bucle, aunque es una idea.

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

Etiquetas: onclick, validador
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 22:42.