Ir a la home de Terra
 
 Argentina
Mi RegistroContactoTerra, tu página de inicioAviso legal Política de Privacidad  
 › Terra › Tecnología

 Buscar en el canal




 Newsletters
Usuario:
Password:
Reciba en su correo:

› Noticias, informes, tutoriales y recomen-daciones (viernes)

› Los mejores downloads (lunes)


 Otras coberturas
› Fotolog Actualidad
Las fotos más impactantes. Dejá tus comentarios.


Que tu celular suene como vos. Cumbia. Pop. Dance. Música de películas y de la TV. Rock. Clásicos de clásicos.



Buenos Aires, 31 de enero de 2001 - 21:09 hs.
Última actualización 00:09

Guía práctica de JavaScript - 5ta. entrega
Funciones para validar datos


Ya vimos como manejarnos con formularios. Ahora vamos a ver algunas funciones que sirven para mejorar la comunicación con el usuario.

La primera sirve para validar datos, útil en el momento de llenar un formulario. El ingreso correcto de los datos es importante para que luego no se generen errores. Por ejemplo, si tenemos que llenar un formulario con el nombre, apellido, edad, DNI, telefono y mail, vamos a querer que la persona no deje en blanco ningún campo, que el DNI y la edad tengan nada mas que números y que el mail sea válido.

La ventaja que tiene utilizar validaciones por Javascript, es que se hacen en tiempo real, es decir que no se pierde tiempo en procesar el formulario. ¿Cómo es esto? Las validaciones también se podrían por un lenguaje tipo ASP, CGI o PHP, pero si al mandar a procesar el formulario hay algun error en el ingreso se va a informar del error y vamos a tener que volver a llenar los datos.

Es decir, no es efectivo hacer las validaciones únicamente por estos lenguajes porque se pierde tiempo de procesamiento. Sin embargo, es conveniente controlar utilizando ambos lenguajes, ya que a veces se puede saltear el control de JavaScript.

  • La primer función controla que el campo no este vacío, chequea que el parámetro que le llega no sea NULL, si esto ocurre sigue y devuelve FALSE, pero si está vacío devuelve TRUE.

    Function estaVacio(texto){
    If (texto == null || texto == ""){
    Return true
    }
    return false
    }

    La función esInteger, que recibe un campo como parámetro, chequea que cada caracter sea un número. Esto lo hace leyendo el último dato ingresado y comparando con los valores de los números en ASCII (es una asignación que se le da a las teclas en un número).

    Es importante aclarar que en la llamada a la función se debe incorporar el evento onKeyPress. En la mitad de la funcion chequeo de que navegador viene, ya que la la lectura de la tecla presionada es diferente en el Netscape, de los demas exploradores.

    function esInteger(e) {
    var charCode
    if (navigator.appName == "Netscape") // me fijo
    charCode = e.which // leo la tecla en ASCII que ingreso
    else
    charCode = e.keyCode // leo la tecla en ASCII que ingreso
    if (charCode > 31 && (charCode < 48 || charCode > 57))
    alert("Esto no es un Numero !!")
    return false
    }
    return true
    }

  • El ejemplo de abajo sirve para chequear que un campo esté entre dos números. En este caso el campo que llega como parámetro se lo compara para saber si esta entre 1 y 21. Cambiando las condiciones podemos adaptarlo a lo que nosotros queramos.

    function inrange(inputStr){
    num = parteInt(inputStr)
    if (num >= 1 && num <= 21){
    return false
    } return true

    }

  • Este último ejemplo es útil para validar emails, por ejemplo, para una lista de correo o subscripciones donde la dirección tiene que estar correctamente escrita. Es muy sencillo: simplemente chequeamos que en todo el texto haya una arroba. Si se quiere complicar un poco mas se puede controlar que figure al menos un punto despues de la arroba y los sufijos net, org, o com después.

    function esEmail(texto) {
    var textoStr = texto.toString() // transformo a string todo el campo
    var tiene = 0
    for(var i = 0;i < texto.length;i++){ // recorro letra por letra
    var oneChar = textoStr.charAt(i)
    if (oneChar == "@"){ // busco una arroba en cada letra
    tiene = 1
    }
    } if (tiene == 1){ // controlo si existe o no una arroba
    alert("El Email es valido")
    return true
    } else {
    alert("El Email no es valido")
    return false
    }
    }

    Veamos un ejemplo completo donde se utilizan todas las validaciones:






    Esta vacio ?
    Es numerico ?
    Un rango ?


    <HTML>
    <HEAD>
    <TITLE></TITLE>
    </HEAD>
    <BODY>
    <SCRIPT LANGUAGE="JAVASCRIPT">
    function chequear(texto){
    if (texto == null || texto == "") //chequeamos que este vacio o NULL
    alert("Esta Vacio")
    else
    alert("Esta Lleno")
    }
    function esInteger(e) {
    var charCode
    if (navigator.appName == "Netscape") // Veo si es Netscape o Explorer (mas adelante lo explicamos)
    charCode = e.which // leo la tecla que ingreso
    else
    charCode = e.keyCode // leo la tecla que ingreso
    status = charCode
    if (charCode > 31 && (charCode < 48 || charCode > 57)) { // Chequeamos que sea un numero comparandolo con los valores ASCII
    alert("Esto no es un Numero !!")
    return false
    }
    return true
    } function enRango(texto){
    num = parseInt(texto) // tranformamos el texto en numérico
    if (num >= 1 && num <=21){ // comparamos ...
    alert("Esta entre 1 y 21")
    return false
    }
    alert("NO Esta entre 1 y 21")
    return true
    }

    function esEmail(texto) {
    var textoStr = texto.toString() // transformo a string todo el campo
    var tiene = 0
    for(var i = 0;i < texto.length;i++){ // recorro letra por letra
    var oneChar = textoStr.charAt(i)
    if (oneChar == "@"){ // busco una arroba en cada letra
    tiene = 1
    }
    } if (tiene == 1){ // controlo si existe o no una arroba
    alert("El Email es valido")
    return true
    } else {
    alert("El Email no es valido")
    return false
    }
    }

    </SCRIPT>
    <form>
    Esta vacío? <INPUT type="text" name="vacio" onBlur="chequear(vacio.value)">
    Es numérico ? <INPUT type="text" name="numerico" onKeyPress="return esInteger(event)">
    Un rango? <INPUT type="text" name="rango" onBlur="enRango(rango.value)">
    Es un email ?<INPUT type="text" name="email" onBlur="esEmail(email.value)">
    </form>
    </BODY>
    </HTML>



    Próxima página » Cómo crear ventanas a medida






     Comentarios publicados
    Los mensajes publicados por los usuarios no sufren revisión ortográfica o de redacción alguna. Ver reglamento de aprobación.
    Mensajes publicados en esta nota: 15
    Me parece muy nteresante pero en mi opinion ya que...(Miquel Guerrero)
    Este javascript lo quiero probar en una pagina de ...(victor)
    Esta muy bien tus ejemplos, y te felicito por comp...(Gildardo)
    Son buenos los ejemplos. Me gustaría que mostrara...(Rafael Ernesto)
    les doy muchisimas gracias por haber publicado est...(darknness)
    lo que pones esta muy bien pero como recojo lo que...(sonia)
    Sabes, la funcion para validar no sirve cuando te ...(Cristina)
    Puedo hacer una pregunta ?... como puedo validar ...(NeanDegor)
    Muy Bueno. Gracias(Kandy)
    Gracias a esta guía creo que podré enterarme de có...(Charo)
       

  • Espacio de publicidad


    Partes de esta nota
    I. Cómo crear ventanas a medida
    II. Dime que sitios visitas y te diré quien eres
    III. Cambiando de dirección
    IV. Funciones para validar datos

     Blogs
    › Criminal Blog
    Casos policiales + investigaciones especiales.

    › Dr. Dinero
    Ahorros, inversiones, compras y ventas.


     » Terra en otros países » Aviso Legal | Política de Privacidad | Prohibida su reproducción total o parcial © Copyright 2010,Terra Networks, S.A.
      Newsletters | Publicidad | Registro de usuarios | Contactanos | Terra RSS