Validar formulario con javascript

Vamos realizar un ejemplo de un formulario completo para validar. Las validaciones se hacen en el propio navegador antes de enviarlo. Si hubo algún campo no relleno o con información errónea, el formulario muestra el campo que está incorrecto y solicita al usuario que lo cambie. Si todos los datos del formulario son correctos se envía el formulario.

Hemos querido hacer un formulario sencillo, para que el ejercicio no se haga demasiado complicado. No obstante, se realizan validaciones en campos con distintos valores, para hacerlo más variado. Se comprueba un campo donde debe figurar un texto, otro donde debe introducirse un número mayor que 18 y un último con un campo select donde deben haber seleccionado un valor.

Lo primero que debemos considerar para que todo funcione como esperamos es declarar los tags del formulario y del botón submit como mostramos a continuación:

<form name="fvalida" method="POST">
  ...
<input type="button" value="Enviar" onclick="validarform()">

Nos debemos fijar expresamente en el tag <form> que no lleva action=»», los datos se envían mediante el método POST y tiene un name=»fvalida».

Tendremos un botón type=»button» que al hacer click en él, ejecutaremos la función validarform(). En medio de estos tags tendremos todos los inputs del formulario.

La función javascript validarform() es la que se encarga de mostrarnos los mensajes de error si en los campos del formulario no se ha introducido una cadena de texto esperada.

<script type="text/javascript">
function validarEntero(valor){
   //intento convertir a entero.
   //si era un entero no le afecta, si no lo era lo intenta convertir
   valor = parseInt(valor)

   //Compruebo si es un valor numérico
   if (isNaN(valor)) {
      //entonces (no es numero) devuelvo el valor cadena vacia
      return ""
   }else{
      //En caso contrario (Si era un número) devuelvo el valor
      return valor
   }
}

function validarform(){
   //valido el nombre
   if (document.fvalida.nombre.value.length==0){
      alert("Tiene que escribir su nombre")
      document.fvalida.nombre.focus()
      return 0;
   }

   //valido la edad. tiene que ser entero mayor que 18
   edad = document.fvalida.edad.value
   edad = validarEntero(edad)
   document.fvalida.edad.value=edad
   if (edad==""){
      alert("Tiene que introducir un número entero en su edad.")
      document.fvalida.edad.focus()
      return 0;
   }else{
      if (edad<18){
         alert("Debe ser mayor de 18 años.")
         document.fvalida.edad.focus()
         return 0;
      }
   }

   //valido el interés
   if (document.fvalida.interes.selectedIndex==0){
      alert("Debe seleccionar un motivo de su contacto.")
      document.fvalida.interes.focus()
      return 0;
    }

    //el formulario se envia
    alert("Muchas gracias por enviar el formulario");
    document.fvalida.submit();
}
</script>

Ver el ejemplo en funcionamiento

Autor
Escrito por Jose Aguilar - Director ejecutivo y tecnológico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.
Te ha servido? Valora esta entrada!
(2 votos, promedio: 4 de 5)
Comparte en las redes sociales
¿Buscas trabajo de programador?

7 respuestas a “Validar formulario con javascript”

  1. manuel dice:

    una Consulta, en que parte debo poner el action para enviar el formulario al otro formulario php ? muchas gracias

  2. euge dice:

    Hola, estoy probando este ejemplo, pero no me muestra los datos. O copié y pegué el código en un nuevo archivo tal cuál aparece aquí y al completar los campos y hacer click en enviar, aparece el mensaje de gracias por completar el formulario, pero no los datos, como aparece cuando pruebo el ejemplo desde aquí.
    Qué necesito agregar para que me muestre los datos ?

    Saludos y muchas gracias

    • Jose Aguilar dice:

      Hola buenas tardes,

      Debes fijarte bien el en código que se muestra en este artículo ya que no está al completo. Los campos de tu formulario deberás realizar la validación de cada uno de ellos obteniendo su valor y verificando si son correctos.

      Saludos

  3. luna dice:

    —— validar y enviar en js ——

    function mostrarError(elemento){
    elemento.style.display=»inherit»;
    }

    function sacarError(elemento){
    elemento.style.display=»none»;
    }

    function enviarFormulario(){
    var nombre= document.getElementById(«nombre»);
    var errornombre= document.getElementById(«errornombre»);

    if(!nombre.value || nombre.value.length20){
    mostrarError(errornombre);
    nombre.focus();
    return false;
    }
    else{
    sacarError(errornombre);
    }
    }

  4. luna dice:

    —— validar y enviar en jq ——

    $(document).ready(function(){

    $(«#boton-enviar»).click(function(){
    var nombre =$(«#nombre»);
    var errornombre =$(«#errornombre»);

    if(!nombre.val()){
    errornombre.fadeIn(«slow»);
    nombre.focus();
    return false;
    }
    else{
    errornombre.fadeOut();
    }
    })
    })

  5. luna dice:

    —— validar y enviar en jq ——

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Ver más sobre