Foros del Web » Programando para Internet » Javascript »

ayuda con validación poco convencional

Estas en el tema de ayuda con validación poco convencional en el foro de Javascript en Foros del Web. Amigos, Estoy haciendo una validación poco convencional, a lo mejor estoy haciendolo mal, pero por ello quiero vuestra opinion. Lo que pasas es que no ...
  #1 (permalink)  
Antiguo 29/04/2010, 18:15
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 4 meses
Puntos: 2
ayuda con validación poco convencional

Amigos,

Estoy haciendo una validación poco convencional, a lo mejor estoy haciendolo mal, pero por ello quiero vuestra opinion. Lo que pasas es que no quiero la tipica validacion con los alert sino que aparezca un cuadro como un div, reconocido por un id. Parecido al hacerlo con ajax y/o DOM pero de manera simple.

tengo esto:
Código HTML:
<script type="text/javascript">
function validar(div){
if(document.contact.name.value.length==0){
document.getElementById(div).style.display="block"
}
else{
document.getElementById(div).style.display="none"
}
}
</script> 
Código HTML:
<form name="contact" action="index.php" method="post" onsubmit="return validar(this, 'noname');">
name : <input type="text" name="name"  />&nbsp;&nbsp;
<div id="noname">Ingrese Nombre</div>
<input type="submit" value="submit" />
</form> 

ojala me puedan ayudar, no se mucho de javascript, pero cualquier ayuda nos ayudará a apernder a muchos

Gracias de antemano
__________________
$ayudar = 'ayudar es compartir';
echo $ayudar;
  #2 (permalink)  
Antiguo 29/04/2010, 18:43
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: ayuda con validación poco convencional

  1. el primer error que tienes es que hay conflicto de referencia al campo a validar. el campo tiene como nombre name pero javascript entiende que quieres leer la propiedad name del formulario y no el campo. es decir, en la linea document.contact.name, la parte en negrita hace referencia al atributo name del formulario. cambia el valor del atributo name del campo por otro que no conflija con algun nombre de las propiedades del formulario.
  2. segundo error, la funcion validar solo admite un parametro. el error no es que estas pasando mas de uno, sino que estas pasando el valor incorrecto. no veo la razon de porque pasarle this (la referencia del formulario) cuando en realidad no haces nada con él. simplemente envia el parametro del ID del DIV.
  3. tercero, viendo que onsubmit tiene return se entiende que quieres cancelar el envio cuando las condiciones no son validas. en este caso, la funcion valida no devuelve ningun booleano para detener el proceso de envio. dentro del condicional tienes que poner return false y return true.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 29/04/2010 a las 18:49
  #3 (permalink)  
Antiguo 29/04/2010, 18:53
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: ayuda con validación poco convencional

Cita:
Iniciado por zerokilled Ver Mensaje
  1. el primer error que tienes es que hay conflicto de referencia al campo a validar. el campo tiene como nombre name pero javascript entiende que quieres leer la propiedad name del formulario y no el campo. es decir, en la linea document.contact.name, la parte en negrita hace referencia al atributo name del formulario. cambia el valor del atributo name del campo por otro que no conflija con algun nombre de las propiedades del formulario.
  2. segundo error, la funcion validar solo admite un parametro. el error no es que estas pasando mas de uno, sino que estas pasando el valor incorrecto. no veo la razon de porque pasarle this (la referencia del formulario) cuando en realidad no haces nada con él. simplemente envia el parametro del ID del DIV.
  3. tercero, viendo que onsubmit tiene return se entiende que quieres cancelar el envio cuando las condiciones no son validas. en este caso, la funcion valida no devuelve ningun booleano para detener el proceso de envio. dentro del condicional tienes que poner return false y return true.

ok, hice esto pero sigue sin funcionar, porque??

Código:
function validar(){
if(document.contact.campo.value.length==0){
document.getElementById('noname').style.display="block"
}
else{
document.getElementById('noname').style.display="none"
return false;
}
}
Código HTML:
<form name="contact" action="index.php" method="post" onsubmit="return validar();">
name : <input type="text" name="campo"  />&nbsp;&nbsp;
<div id="noname">Ingrese Nombre</div>
<input type="submit" value="submit" />
</form> 
__________________
$ayudar = 'ayudar es compartir';
echo $ayudar;
  #4 (permalink)  
Antiguo 29/04/2010, 18:58
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: ayuda con validación poco convencional

porque ubicastes return false en el lugar equivocado. return false va dentro de la condicion que indique que las condiciones no son válidas. o sea, va dentro de if.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 29/04/2010, 18:58
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: ayuda con validación poco convencional

le he agregado esto al div

style="display:none" pero aun asi nada
__________________
$ayudar = 'ayudar es compartir';
echo $ayudar;
  #6 (permalink)  
Antiguo 29/04/2010, 19:06
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: ayuda con validación poco convencional

ok l arregle y me quedó estupendo, muchas gracias, el codigo es el siguiente:

Código HTML:
function validar(){
	if(document.contact.campo.value.length==0){
	document.getElementById('nombre').style.display="block"
	return false;
	} else {
	document.getElementById('nombre').style.display="none"
	}
	if(document.contact.campo2.value.length==0){
	document.getElementById('apellido').style.display="block"
	return false;
	} else {
	document.getElementById('apellido').style.display="none"
	}
}
Código HTML:
<form name="contact" action="index.php" method="post" onsubmit="return validar();">
nombre : <input type="text" name="campo"  /><span id="nombre" style="display:none">Ingrese Nombre</span>
<br /><br />
apellido : <input type="text" name="campo2"  /><span id="apellido" style="display:none">Ingrese Apellido</span>
<input type="submit" value="submit" />
</form> 
Muchisimas gracias zerokilled, ahora tengo una ultima consulta, esta forma de validacion es útil??, es decir me serviría para cualquier navegador??, tu crees que vale la pena usarla??
__________________
$ayudar = 'ayudar es compartir';
echo $ayudar;
  #7 (permalink)  
Antiguo 29/04/2010, 19:09
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: ayuda con validación poco convencional

he agregado esto para que se situe el cursos sobre el campo

sobre return false;

puse:
document.contact.campo.focus() y document.contact.campo2.focus() respectivamente

y funciona bien.

Que opinas zerokilled, será útl usarlo?
__________________
$ayudar = 'ayudar es compartir';
echo $ayudar;
  #8 (permalink)  
Antiguo 29/04/2010, 19:13
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: ayuda con validación poco convencional

respuesta corta, si, funciona en todos los navegadores. respuesta larga, mientras sigas los estandares, deberia funcionarte con todos los navegadores compatible con el estandar. ¿es útil? depende del punto de vista que quieras verlo. es útil para darle una retroalimentacion (feedback) inmediata al usuario. eso ayuda a que la experiencia de navegacion sea mas comoda. pero por otro lado, eso no te asegura a ti que los datos siempre llegaran de la forma correcta. es decir, si el navegador no tiene javascript o esta inhabilitado, no hay nada que puedas hacer. saca tus propias conclusiones.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #9 (permalink)  
Antiguo 29/04/2010, 19:18
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: ayuda con validación poco convencional

las conclusiones son obvias gracias a ti, tienes muchisima razón en todo lo que dices. Lo queria hacer para ver cambiar las tipicas funciones alert y confirm, ya que son muy comunes, aunque muchas veces los usuarios quieren cosas faciles de entender, pero capto tu idea, neuvamente gracias.

Tengo una ultima consulta, porque al hacer la validacion me hace un saltoo de linea??, en lugar de mostrarmela en la misma linea??
__________________
$ayudar = 'ayudar es compartir';
echo $ayudar;
  #10 (permalink)  
Antiguo 29/04/2010, 19:23
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: ayuda con validación poco convencional

antes de contestarte, pregunta curiosa. ¿alguna vez has leido los detalles tecnicos acerca de HTML? ¿sabes lo que son los elementos bloques y lineal?
http://cat.xula.edu/tutorials/html/versus.php
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #11 (permalink)  
Antiguo 29/04/2010, 19:26
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: ayuda con validación poco convencional

tu pregunta curiosa ha hecho que me ciga de la silla!!!,

la verdad es que no, a eso se debe??, la verdad es que como muchos he aprendido poco, de mucho y mucho de poco.

crees que para contestarme yo mismo, deberia de leer sobre eso??
__________________
$ayudar = 'ayudar es compartir';
echo $ayudar;
  #12 (permalink)  
Antiguo 29/04/2010, 19:28
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: ayuda con validación poco convencional

Cita:
Iniciado por easy Ver Mensaje
tu pregunta curiosa ha hecho que me ciga de la silla!!!,

la verdad es que no, a eso se debe??, la verdad es que como muchos he aprendido poco, de mucho y mucho de poco.

crees que para contestarme yo mismo, deberia de leer sobre eso??


ok no hace falta que me contestes, ya lo vi y cambie block por inline, me hace falta lerer un poco mas y no lanzarme a hacer cosas :)

otravez y no me cansaré de repetirme, Gracias hasta por la pregunta curiosa, has hecjo que aprenda.
__________________
$ayudar = 'ayudar es compartir';
echo $ayudar;
  #13 (permalink)  
Antiguo 29/04/2010, 19:35
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: ayuda con validación poco convencional

¿sabias que muchas de las dudas las responde un manual? o al menos las basicas y moderadas. pero en serio, la mayoria de los manuales se discute ese detalle. la informacion la puedes encontrar en W3.org pero este suele ser complicado de digerir porque tiene un enfoque altamente tecnico para muchos. pero igual, incluso la wikipedia habla al respecto. estoy tratando de buscarte un enlace en español pero no encuentro.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #14 (permalink)  
Antiguo 29/04/2010, 19:37
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: ayuda con validación poco convencional

Cita:
Iniciado por zerokilled Ver Mensaje
¿sabias que muchas de las dudas las responde un manual? o al menos las basicas y moderadas. pero en serio, la mayoria de los manuales se discute ese detalle. la informacion la puedes encontrar en W3.org pero este suele ser complicado de digerir porque tiene un enfoque altamente tecnico para muchos. pero igual, incluso la wikipedia habla al respecto. estoy tratando de buscarte un enlace en español pero no encuentro.

Que tal este??
http://html.conclase.net/tutorial/html/
__________________
$ayudar = 'ayudar es compartir';
echo $ayudar;
  #15 (permalink)  
Antiguo 29/04/2010, 19: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: ayuda con validación poco convencional

enfocastes mal el asunto respecto a cambiar block por inline pero no deja de ser una solucion. lo que hicistes fue cambiar la forma de la presentacion del elemento con CSS. aun asi, me parece que no estas comprendiendo el concepto.

del enlace que has suplido, leete esta seccion http://html.conclase.net/tutorial/html/2/4
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #16 (permalink)  
Antiguo 29/04/2010, 19:47
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: ayuda con validación poco convencional

Cita:
Iniciado por zerokilled Ver Mensaje
enfocastes mal el asunto respecto a cambiar block por inline pero no deja de ser una solucion. lo que hicistes fue cambiar la forma de la presentacion del elemento con CSS. aun asi, me parece que no estas comprendiendo el concepto.

del enlace que has suplido, leete esta seccion http://html.conclase.net/tutorial/html/2/4

OK lo he leido y, la verda no entiendo el porque y como podria entra dentro del codigo javascript

Es decir, yo estoy declarando .style. lo que me indica que es unatributo puramente CSS como bien dijiste, pero en la forma de mostrar el id que llamo, lo hice antes con un div (pero era un bloque, como lo es <p>, <li>, etc), pero lo supli con un <span>, lo cual es un atributo en linea que no me deberia hacer un salto de linea, cierto??, pero lo seguia haciendo porque el .style. llamado en javascript llama la funcion css lo cual solamente me ayudaría si sigo declarando atributos css, cierto??

espero saber de tu parte que lo he entendido, o saber si sigo en la nebulosa de la quivocación.
__________________
$ayudar = 'ayudar es compartir';
echo $ayudar;
  #17 (permalink)  
Antiguo 29/04/2010, 20:08
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: ayuda con validación poco convencional

me costo un poco de trabajo comprender tu mensaje! espero responder a tus dudas. estas en lo cierto, el problema era que DIV es un elemento tipo bloque. pero al cambiarlo por SPAN te sigue apareciendo como saltos de linea. razon, en tu script estas cambiando el comportamiento del elemento en la propiedad style.display. fijate que le estas asignando como valor block. lo que significa que el elemento actuará como un elemento de tipo bloque. la solucion es una de dos para cuando quieras mostrar el elemento. le asignas como valor inline o le asignas un string vacio.

dato extra. quizas tu pienses: ¿no era igual si dejaba el elemento DIV y en lugar de asignar a display el valor block asignarle inline? en terminos de presentacion, es lo mismo. pero el proposito era que lo entendieras desde la raiz. los elementos sin css tienen sus propias caracteristicas de presentacion. en este caso tu estabas usando como valor block porque es lo que comunmente se utiliza. pero no es la unica solucion para mostrar elemento, tambien puedes asignarle un string vacio desde javascript. pero entonces, ibas a continuar con el mismo problema.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 29/04/2010 a las 20:16
  #18 (permalink)  
Antiguo 29/04/2010, 20:16
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: ayuda con validación poco convencional

Cita:
Iniciado por zerokilled Ver Mensaje
me costo un poco de trabajo comprender tu mensaje! espero responder a tus dudas. estas en lo cierto, el problema era que DIV es un elemento tipo bloque. pero al cambiarlo por SPAN te sigue apareciendo como saltos de linea. razon, en tu script estas cambiando el comportamiento del elemento en la propiedad style.display. fijate que le estas asignando como valor block. lo que significa que el elemento actuará como un elemento de tipo bloque. la solucion es una de dos para cuando quieras mostrar el elemento. le asignas como valor inline o le asignas un string vacio.
ok, te entiendo, disculpa si no me expreso bien.

Ahora tengo otro inconveniente, quisiera validar un email con expresion regular

tengo esto:
Código HTML:
function validar(valor){
	if(document.contact.campo.value.length==0){
	document.getElementById('nombre').style.display="inline"
	document.contact.campo.focus()
	return false;
	} else {
	document.getElementById('nombre').style.display="none"
	}
	if(document.contact.campo2.value.length==0){
	document.getElementById('apellido').style.display="inline"
	document.contact.campo2.focus()
	return false;
	} else {
	document.getElementById('apellido').style.display="none"
	}
	if(document.contact.email.value.length==0){
	document.getElementById('email').style.display="inline"
	document.contact.email.focus()
	return false;
	} else {
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor)){
	} else {
	document.getElementById('email2').style.display="inline"
	return false;
	}
	document.getElementById('email').style.display="none"
	}
}
Código HTML:
<form name="contact" action="index.php" method="post" onsubmit="return validar(this.form.email.value);">
nombre: <input type="text" name="campo"  /> <b id="nombre" style="display:none; color:#ff0000;">Ingrese Nombre</b>
<br /><br />
apellido: <input type="text" name="campo2"  /> <b id="apellido" style="display:none; color:#ff0000;">Ingrese Apellido</b>
<br /><br />
email: <input type="text" name="email"  /> <b id="email" style="display:none; color:#ff0000;">Ingrese Email</b><b id="email2" style="display:none; color:#ff0000;">Email en formato no valido</b>
<input type="submit" value="submit" />
</form> 
pero no me funciona, ni siquiera me lo valida ya

le agregue, this.form.email.value al evento onsubmit y a la funcion le puse (valor), ya que asi lo tengo en la funcion validar tradicional, que utilizo:

Código HTML:
    //valido el email
	if (document.contact.email.value.length==0){
       alert("Por favor ingrese su E-mail\n\nGracias")
       document.contact.email.focus()
       return false;
	} else {
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor)){
	} else {
	alert("El E-mail ingresado no es un e-mail valido\nPor favor verifique que sea una direccion e-mail valida\n\nGracias");
	return false;
	}
	}

Me ayudas, para seguir aprendiendo, porfa??
__________________
$ayudar = 'ayudar es compartir';
echo $ayudar;
  #19 (permalink)  
Antiguo 29/04/2010, 20:26
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: ayuda con validación poco convencional

ok ya me funciono pero con evento onclick y no con el evento onsumbit, tengo esto:

Código HTML:
Ver original
  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  2. <title>Documento sin t&iacute;tulo</title>
  3. <script type="text/javascript">
  4. function validar(valor){
  5.     if(document.contact.campo.value.length==0){
  6.     document.getElementById('nombre').style.display="inline"
  7.     document.contact.campo.focus()
  8.     return false;
  9.     } else {
  10.     document.getElementById('nombre').style.display="none"
  11.     }
  12.     if(document.contact.campo2.value.length==0){
  13.     document.getElementById('apellido').style.display="inline"
  14.     document.contact.campo2.focus()
  15.     return false;
  16.     } else {
  17.     document.getElementById('apellido').style.display="none"
  18.     }
  19.     if(document.contact.email.value.length==0){
  20.     document.getElementById('email').style.display="inline"
  21.     document.contact.email.focus()
  22.     return false;
  23.     } else {
  24.     document.getElementById('email').style.display="none"
  25.     if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor)){
  26.     } else {
  27.     document.getElementById('email2').style.display="inline"
  28.     document.contact.email.focus()
  29.     return false;
  30.     }
  31.     }
  32. }
  33. </head>
  34.  
  35. <form name="contact" action="index.php" method="post">
  36. nombre: <input type="text" name="campo"  /> <b id="nombre" style="display:none; color:#ff0000;">Ingrese Nombre</b>
  37. <br /><br />
  38. apellido: <input type="text" name="campo2"  /> <b id="apellido" style="display:none; color:#ff0000;">Ingrese Apellido</b>
  39. <br /><br />
  40. email: <input type="text" name="email"  /> <b id="email" style="display:none; color:#ff0000;">Ingrese Email</b><b id="email2" style="display:none; color:#ff0000;">Email en formato no valido</b>
  41. <input type="submit" value="submit" onclick="return validar(this.form.email.value);" />
  42. </form>
  43. </body>

pero porque con onclick y no con onsubmit si deberia de funcionar con onsubmit, ya que es la regla de validacion para formulario??
__________________
$ayudar = 'ayudar es compartir';
echo $ayudar;

Última edición por easy; 30/04/2010 a las 12:11
  #20 (permalink)  
Antiguo 29/04/2010, 22:01
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: ayuda con validación poco convencional

el evento onsubmit va en el elemento FORM. capaz lo pusistes en el elemento INPUT y por eso no te trabaja.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #21 (permalink)  
Antiguo 30/04/2010, 12:02
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: ayuda con validación poco convencional

Cita:
Iniciado por zerokilled Ver Mensaje
el evento onsubmit va en el elemento FORM. capaz lo pusistes en el elemento INPUT y por eso no te trabaja.
Hola zerokilled, el evento onsubmit, lo puse dentro de la etiqueta form pero no me trabaja y por eso es que lo puse en el input como onclick, revisalo y veras que no trabaja con onsubmit.

porque crees tu que será??
__________________
$ayudar = 'ayudar es compartir';
echo $ayudar;
  #22 (permalink)  
Antiguo 30/04/2010, 12:10
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: ayuda con validación poco convencional

con onsubmit no te funciona porque estas pasando como argumento una referencia incorrecta. es decir, this.form.email.value. this hace referencia al formulario (<FORM>). ¿a que hace referencia this.form? a undefined porque esa propiedad solo existe en los elementos de controles de formulario: input, select, textarea, etcétera.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #23 (permalink)  
Antiguo 30/04/2010, 12:14
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: ayuda con validación poco convencional

Cita:
Iniciado por zerokilled Ver Mensaje
con onsubmit no te funciona porque estas pasando como argumento una referencia incorrecta. es decir, this.form.email.value. this hace referencia al formulario (<FORM>). ¿a que hace referencia this.form? a undefined porque esa propiedad solo existe en los elementos de controles de formulario: input, select, textarea, etcétera.

OK, Grcias lo corregi y aqui esta, funciona


Código HTML:
Ver original
  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  2. <title>Documento sin t&iacute;tulo</title>
  3. <script type="text/javascript">
  4. function validar(valor){
  5.     if(document.contact.campo.value.length==0){
  6.     document.getElementById('nombre').style.display="inline"
  7.     document.contact.campo.focus()
  8.     return false;
  9.     } else {
  10.     document.getElementById('nombre').style.display="none"
  11.     }
  12.     if(document.contact.campo2.value.length==0){
  13.     document.getElementById('apellido').style.display="inline"
  14.     document.contact.campo2.focus()
  15.     return false;
  16.     } else {
  17.     document.getElementById('apellido').style.display="none"
  18.     }
  19.     if(document.contact.email.value.length==0){
  20.     document.getElementById('email').style.display="inline"
  21.     document.contact.email.focus()
  22.     return false;
  23.     } else {
  24.     document.getElementById('email').style.display="none"
  25.     if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor)){
  26.     } else {
  27.     document.getElementById('email2').style.display="inline"
  28.     document.contact.email.focus()
  29.     return false;
  30.     }
  31.     }
  32. }
  33. </head>
  34.  
  35. <form name="contact" action="index.php" method="post" onsubmit="return validar(email.value);">
  36. nombre: <input type="text" name="campo"  /> <b id="nombre" style="display:none; color:#ff0000;">Ingrese Nombre</b>
  37. <br /><br />
  38. apellido: <input type="text" name="campo2"  /> <b id="apellido" style="display:none; color:#ff0000;">Ingrese Apellido</b>
  39. <br /><br />
  40. email: <input type="text" name="email"  /> <b id="email" style="display:none; color:#ff0000;">Ingrese Email</b><b id="email2" style="display:none; color:#ff0000;">Email en formato no valido</b>
  41. <input type="submit" value="submit" />
  42. </form>
  43. </body>


Gracias nuevamente
__________________
$ayudar = 'ayudar es compartir';
echo $ayudar;

Etiquetas: convencional, validar
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 12:38.