Javascript

Ξ 22 comentarios

Cómo validar campos de un formulario mediante Javascript

por Xabadu
Cómo validar campos de un formulario mediante Javascript

Hoy en día, es muy común utilizar una serie de formularios en nuestros sitios Web. Ya sea para establecer canales formales de contacto, o si necesitamos autentificar usuarios para acceder a los contenidos o simplemente para distintas funcionalidades que podamos ofrecer, sin duda que es la herramienta más útil, sencilla y conocida que hay.

Un aspecto importante de estos formularios es que los usuarios ingresen los datos solicitados para que podamos operar con ellos. Si bien una vez que envían esta información podemos validarla al momento de ser procesada, esto muchas veces causa recargas innecesarias en el servidor y es por eso que es mucho mejor hacer la validación antes de que sea enviada y así cargar el contenido siguiente solo si es necesario.

Hoy les enseñaremos una sencilla validación mediante Javascript.

Todo el detalle, como siempre, después del salto.

Cómo validar campos de un formulario mediante Javascript

Implementos necesarios:

  1. Un editor Web (recomendamos y utilizamos Adobe Dreamweaver). Si no poseen, pueden escribir el código en algún editor de texto como block de notas.

Con todo eso claro, vamos, manos a la obra:

Procedimiento:

1.- Lo primero que haremos será crear un nuevo archivo HTML, en donde incluiremos un formulario y definiremos una función en Javascript que se encargará de la validación.

2.- En nuestro HTML, creamos un formulario, el cual contendrá 3 campos:

  • Un campo de texto para ingresar el nombre.
  • Un campo de texto para ingresar la edad.
  • Una lista desplegable indicando el motivo del contacto.

Adicionalmente añadiremos un botón para el envío de datos. El código del formulario es el siguiente:

<form name=”form1″ action=”pagina-de-destino.html”>
<table>
<tr>
<td>Nombre: </td>
<td><input type=”text” name=”nombre” size=”30″ maxlength=”100″></td>
</tr>
<tr>
<td>Edad: </td>
<td><input type=”text” name=”edad” size=”3″ maxlength=”2″></td>
</tr>
<tr>
<td>Motivo:</td>
<td>
<select name=motivo>
<option value=”Seleccionar”>Seleccionar
<option value=”General”>Contacto General
<option value=”Tecnico”>Problemas Técnicos
<option value=”Sugerencias”>Sugerencias
</select>
</td>
</tr>
<tr>
<td colspan=”2″ align=”center”><input type=”button” value=”Enviar” onclick=”validar_formulario()”></td>
</tr>
</table>
</form>

Como podemos apreciar, el código es el estándar de un formulario como los que hemos hecho en otros tutoriales. Sin embargo, en la etiqueta HTML correspondiente al botón de envío hemos agregado un nuevo atributo llamado onclick, el cual cumple la función de que cuando se presione el botón en vez de cargar una página, llamará a una función Javascript de nombre validar_formulario()

3.- A continuación, añadiremos la función en Javascript que realizará la validación. El código es el siguiente, el cual debemos insertarlo entre las etiquetas <head> y </head>. Los comentarios van en negrita, cursiva y entre /* y */:

<script> /* Abrimos etiqueta de código */
function validar_formulario(){ /* Abrimos la función validar_formulario */
/* Partimos por validar que se haya ingresado un valor para el nombre, esto lo hacemos mediante un if y preguntamos si el campo es igual a 0, si es así, desplegamos un mensaje para que se ingrese el nombre y volvemos al formulario. */
if (document.form1.nombre.value.length==0){
alert(“Debe ingresar su nombre”)
document.form1.nombre.focus()
return 0;
}

/* Luego validamos la edad, viendo si se ingresa una mayor a 18 años. Asignamos primero a una variable el valor ingresado y luego comprobando que no este vacío y que cumpla el requerimiento. También llamaremos a una función validarEntero que definiremos en el siguiente paso, dándole como parámetro la edad ingresada. Esta función realizará las validaciones necesarias para definir si es un dato numérico. */
edad = document.form1.edad.value
edad = validarEntero(edad)
document.form1.edad.value=edad
if (edad==””){
alert(“Debe ingresar su edad.”)
document.form1.edad.focus()
return 0;
}else{
if (edad<18){
alert(“Debe ser mayor de 18”)
document.form1.edad.focus()
return 0;
}
}

/* Finalmente, validamos el motivo del contacto */
if (document.form1.motivo.selectedIndex==0){
alert(“Debe seleccionar un motivo de su contacto.”)
document.form1.interes.focus()
return 0;
}

/* Si paso todas las validaciones, desplegamos un mensaje de éxito y enviamos el formulario */
alert(“Los datos fueron ingresados correctamente y seran enviados”);
document.form1.submit();
}
</script>

4.- A continuación de la función anterior, crearemos otra función que realizará una conversión del dato ingresado para la edad a entero y comprueba si lo que se ingresó es realmente un valor numérico:

function validarEntero(valor){
/* Mediante parseInt intentaremos transformar el valor a número entero. Si el dato fue ingresado bien y ya lo era, no hará nada */
valor = parseInt(valor)

/* Se comprobará si el valor es un número */
if (isNaN(valor)) {
/* Si no lo es, se devuelve una cadena vacía */
return “”
}else{
/* De lo contrario se devuelve el número */
return valor
}
}

Y con ese procedimiento tenemos una sencilla validación activada para nuestro formulario. De esta forma, nos aseguraremos de que los datos enviados estén siempre correctos y no sobrecargaremos a nuestro servidor procesando datos que puedan estar nulos o incorrectos. Es sin duda muy útil.

Como siempre, este tutorial ha sido:

Cualquier duda o comentario que puedan tener, los invitamos a dejarnos unas líneas en el área habilitada a continuación.

Esperamos que este tutorial haya sido de utilidad para Uds.

Muchas gracias por leer y será hasta una próxima oportunidad.

Staff CLH

Comparte este tutorial

El culpable de todo esto

Las tardes gloriosas de domingo y las grandes ovaciones a estadio lleno, no son algo extraño para Xabadu. Luego de ser descubierto a los 4 años en un partido de barrio por los ojeadores del gran Aviación F.C., sacudió el mercado nacional al ser traspasado en $500 pesos chilenos (1 USD) y 3 coca colas al renombrado Estrella Blanca de Lolol. Luego de una impresionante carrera por equipos como Lozapenco, Santa Cruz, Deportivo Lago Chungará y una incursión en la 3a división del futbol de Kazajstan, su record imbatible hasta la fecha de 1257 goles en 20 partidos lo llevo a ser elegido como uno de los arqueros más recordados en la historia pelotera nacional. Una lesión en el colmillo superior derecho lo llevó al retiro el año 2003, pero está de vuelta y sin duda que su jerarquía y experiencia internacional será un gran aporte.

En los barrios marginales se le conoce como: Xabadu

Comentarios en Facebook

22 Comentarios

  • Muchas gracias por la información. Hace tiempo que buscaba algo pero nunca lo podia hacer funcionar…

    Apenas lo pueda probar te aviso.

    Gracias

  • Como configuro el formulario de contacto con Java, para que lleguen los datos a mi correo

  • @cristian: Si quieres que los datos lleguen a tu correo de forma directa, una forma es que en el atributo actiond el formulario pongas mailto:tu email.

    De lo contrario, te recomendamos revisar este tutorial donde hemos cubierto el proceso completo.

    Saludos

  • Hola cuando coloco el punto 4 no queda bien ¿es que hay que colocarlo bajo las etiquetas dentro del Head?
    me queda el botón Enviar entre comillas sin la función de botón

    Gracias

  • Leonardo Faraone: Coloca la función antes de cerrar la etiqueta script del punto anterior y todo debería funcionar bien.

    Saludos

  • porfa, pon los ficheros del ejemplo para descarga, ya que el editor del blog te cambia las comillas y entonces el copiar el codigo de la pagina tampoco sirve.
    un saludo

  • Hola, quiero saber como hago para que esos datos me los deje anotados en algun txt o me los mande por mail. Me seria de gran ayuda.

    Con que se anoten en un txt me alcanza y me sobra!

    Gracias.

  • Hola eh probado su codigo para validar 2 campos; correo y nombre pero hasta ahorita no me sale ningun mensaje de alerta que son los que se supone q debe salir( Usted debe escribir su nombre), me dirreciona directamente a la pagina de destino que es “datos.php”, nose pq nO pasa nada, alguien q me ayude, lo eh corrido en un servidor pero sigue el mismo resultado

    saludos

  • @Moises:

    ¿Estás copiando el código directamente? Si es asi, probablemente las comillas te las haya pegado distintas. Te recomendamos revisar eso.

    Saludos

  • hola si el codigo esta bien, mira Juan lo acabo de comprobar em otro navegador con FireFox y ahora si me muestra los msj de alerta, pero en IExplore8 no , creo q debe tar mal configurado por eso no muestra, sabes q debo configurar para que me muestre…

    saludos

1 2 3

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Gente linda que nos quiere

Donde mas estamos

news-1701

sabung ayam online

yakinjp

yakinjp

rtp yakinjp

slot thailand

yakinjp

yakinjp

yakin jp

yakinjp id

maujp

maujp

maujp

maujp

slot mahjong

SGP Pools

slot mahjong

sabung ayam online

slot mahjong

SLOT THAILAND

article 999990036

article 999990037

article 999990038

article 999990039

article 999990040

article 999990041

article 999990042

article 999990043

article 999990044

article 999990045

article 999990046

article 999990047

article 999990048

article 999990049

article 999990050

article 710000081

article 710000082

article 710000083

article 710000084

article 710000085

article 710000086

article 710000087

article 710000088

article 710000089

article 710000090

article 710000091

article 710000092

article 710000093

article 710000094

article 710000095

article 710000096

article 710000097

article 710000098

article 710000099

article 710000100

article 710000101

article 710000102

article 710000103

article 710000104

article 710000105

article 710000106

article 710000107

article 710000108

article 710000109

article 710000110

article 710000111

article 710000112

article 710000113

article 710000114

article 710000115

article 710000116

article 710000117

article 710000118

article 710000119

article 710000120

cuaca 638000021

cuaca 638000022

cuaca 638000023

cuaca 638000024

cuaca 638000025

cuaca 638000026

cuaca 638000027

cuaca 638000028

cuaca 638000029

cuaca 638000030

cuaca 638000031

cuaca 638000032

cuaca 638000033

cuaca 638000034

cuaca 638000035

cuaca 638000036

cuaca 638000037

cuaca 638000038

cuaca 638000039

cuaca 638000040

cuaca 638000041

cuaca 638000042

cuaca 638000043

cuaca 638000044

cuaca 638000045

cuaca 638000046

cuaca 638000047

cuaca 638000048

cuaca 638000049

cuaca 638000050

cuaca 638000051

cuaca 638000052

cuaca 638000053

cuaca 638000054

cuaca 638000055

cuaca 638000056

cuaca 638000057

cuaca 638000058

cuaca 638000059

cuaca 638000060

cuaca 638000061

cuaca 638000062

cuaca 638000063

cuaca 638000064

cuaca 638000065

cuaca 638000066

cuaca 638000067

cuaca 638000068

cuaca 638000069

cuaca 638000070

cuaca 638000071

cuaca 638000072

cuaca 638000073

cuaca 638000074

cuaca 638000075

cuaca 638000076

cuaca 638000077

cuaca 638000078

cuaca 638000079

cuaca 638000080

cuaca 638000081

cuaca 638000082

cuaca 638000083

cuaca 638000084

cuaca 638000085

cuaca 638000086

cuaca 638000087

cuaca 638000088

cuaca 638000089

cuaca 638000090

cuaca 638000091

cuaca 638000092

cuaca 638000093

cuaca 638000094

cuaca 638000095

cuaca 638000096

cuaca 638000097

cuaca 638000098

cuaca 638000099

cuaca 638000100

cuaca 898100101

cuaca 898100102

cuaca 898100103

cuaca 898100104

cuaca 898100105

cuaca 898100106

cuaca 898100107

cuaca 898100108

cuaca 898100109

cuaca 898100110

cuaca 898100111

cuaca 898100112

cuaca 898100113

cuaca 898100114

cuaca 898100115

cuaca 898100116

cuaca 898100117

cuaca 898100118

cuaca 898100119

cuaca 898100120

cuaca 898100121

cuaca 898100122

cuaca 898100123

cuaca 898100124

cuaca 898100125

cuaca 898100126

cuaca 898100127

cuaca 898100128

cuaca 898100129

cuaca 898100130

cuaca 898100131

cuaca 898100132

cuaca 898100133

cuaca 898100134

cuaca 898100135

article 868100071

article 868100072

article 868100073

article 868100074

article 868100075

article 868100076

article 868100077

article 868100078

article 868100079

article 868100080

article 868100081

article 868100082

article 868100083

article 868100084

article 868100085

article 868100086

article 868100087

article 868100088

article 868100089

article 868100090

article 888000081

article 888000082

article 888000083

article 888000084

article 888000085

article 888000086

article 888000087

article 888000088

article 888000089

article 888000090

article 888000091

article 888000092

article 888000093

article 888000094

article 888000095

article 888000096

article 888000097

article 888000098

article 888000099

article 888000100

article 328000646

article 328000647

article 328000648

article 328000649

article 328000650

article 328000651

article 328000652

article 328000653

article 328000654

article 328000655

article 328000656

article 328000657

article 328000658

article 328000659

article 328000660

news-1701