Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Feedeex en 24 Mayo 2011, 16:34 pm



Título: Validación de campo en javascript
Publicado por: Feedeex en 24 Mayo 2011, 16:34 pm
Hola a todos. Soy muy nuevo en esto de javascript y estuve viendo en la web como puedo validar campos. Supongamos que tengo el siguiente código:

Código:
<form method="post" action="enviar_formulario.php" OnSubmit="return validar_formulario(this);"
Ingrese su nombre:&nbsp;<input type="text" name="nombre" id="nombre">
<input type="submit" value="Enviar">

Y el código js:

Código:
<script language="javascript">
function valudar_formulario(formulario) {
 if(formulario.nombre.value == '') {
  alert("Campo vacío");
   return false;
 } else {
   return true;
}
</script>

¿Por qué al presionar en Enviar me sale el Alert con el mensaje pero de todas formas manda el formulario?, ¿el false no tendría que anular el envío?.
Y por cierto, me gustaría una vez que sepa porque pasa esto, si alguien puede decir, o pasar alguna página sobre como mejorar el formulario validando varios campos. Es decir, si yo tengo varios campos quiero que me diga algo así como:

Citar
"Debe completar los siguientes campos":

Campo1
Campo2
Campo3

PD: Por cierto, el código recién me funcionaba y daba un alert, ahora ya ni eso :huh:


Título: Re: Validación de campo en javascript
Publicado por: Shell Root en 24 Mayo 2011, 17:26 pm
Código
  1. <script language = "javascript">
  2. function sValidar( sForm ){
  3. if( sForm.txtPoC.value.length > 0 ){
  4. return true;
  5. }else{
  6. return false;
  7. }
  8. }
  9. </head>
  10. <form action = "#" id = "Form1" name = "Form1" method = "POST" onSubmit = "return sValidar(this);">
  11. <input type = "text" id = "txtPoC" name = "txtPoC" /><br />
  12. <input type = "submit" id = "btnEnviar" name = "btnEnviar" value = "Enviar" />
  13. </form>
  14. </body>
  15. </html>


Título: Re: Validación de campo en javascript
Publicado por: Nakp en 24 Mayo 2011, 17:40 pm
no se si has copiado ese codigo del original pero debes cerrar la etiqueta form y debes cerrar el formulario :) (he ahi la razon del por que no funciona :P )

para comprobar si la cadena es '' usa ===


Título: Re: Validación de campo en javascript
Publicado por: Feedeex en 24 Mayo 2011, 17:53 pm
Ese formulario fue tan solo un ejemplo que escribí en el momento para no poner el código más largo que pertenece a la página, no fue una mala copia :xD
Encontré el error y era que me falto cerrar un "}", por eso nunca se ejecutaba la validación.

Y por cierto, ¿tienen alguna sugerencia para indicar los campos que faltan completar?. Porque vi que se hace algo como:

Código:
alert("Falta completar el campo"+campo1+);

Pero no comprendo bien como es para comprobar todos los campos. No pido código ni nada, tan solo alguna explicación breve que luego me las arreglaré.

Muchas gracias por la ayuda!


Título: Re: Validación de campo en javascript
Publicado por: RedZer en 24 Mayo 2011, 17:56 pm
puedes usa jquery validate, te evitas estar realizando cada funcion para cada campo..


Título: Re: Validación de campo en javascript
Publicado por: Feedeex en 24 Mayo 2011, 18:53 pm
Ahora me encuentro con otro problema:

Luego de hacer las validaciones, intento abrir un confirm para mostrar los datos ingresados y que confirme el envío del formulario. Pero el problema está en que no logro hacer un salto de línea en el mismo, y me muestra todo junto. El código es el siguiente:

Código:
function validar_formulario(formulario) {
    var nombre_apellido = formulario.nombre_apellido.value;
var calle = formulario.calle.value;
var numero_calle = formulario.numero_calle.value;
var telefono = formulario.telefono.value;
var email = formulario.email.value;
 if(formulario.nombre_apellido.value == '') {
     alert("Complete el campo 'Nombre y Apellido'");
return false;
} else if(formulario.calle.value == '') {
alert("Complete el campo 'Calle'");
return false;
    } else if(formulario.numero_calle.value == '') {
alert("Complete el campo 'N&deg;'");
return false;
} else if(formulario.telefono.value == '') {
alert("Complete el campo 'Telefono'");
return false;
    } else if(formulario.email.value == '') {
alert("Complete el campo 'Email'");
return false;
} else if(confirm("Datos ingresados:\rNombre y Apellido:" + nombre_apellido + "\rCalle:" + calle + "\rN&deg;:" + numero_calle + "\rTelefono:" + telefono + "\rEmail:" + email + "\r\r¿Confirmar envio?")) {
return true;
} else {
return false;
}
}

Por lo que leí, el salto de línea es con \r, aunque también probé con \n, pero nada..


Título: Re: Validación de campo en javascript
Publicado por: Shell Root en 25 Mayo 2011, 05:55 am
Código
  1. javascript:confirm("Hola\nComo\nEstas?", "");
  2. javascript:var sPoC = "Hola";confirm(sPoC+"\nComo\nEstas?", "");


Título: Re: Validación de campo en javascript
Publicado por: Nakp en 25 Mayo 2011, 15:22 pm
por que no mejor usas ventanas modales? O es tarea y todo tiene que ser "hardcoded"?