logotipo-solucion-individual-nueva-era-400-blanco

Validar Formulario en Bootstrap con Javascript

Índice de Contenido

Veremos cómo validar los campos de un formulario creado con Bootstrap y usando JavaScript y Jquery para la validación de los diferentes campos del formulario. Partimos de la base de que tenemos instalado Bootstrap 3.0 con Jquery para realizar este ejemplo.

Para realizar un ejemplo, crearemos un formulario con los siguientes campos:

  • Nombre
  • Email
  • Mensaje
  • Acepto LOPD

El formulario está creado con las características de estilo y clases de Bootstrap 3.0 He marcado en color verde el nombre que damos a cada campo, ya que lo utilizaremos en el código JavaScript para validarlos. También es importante poner unas etiquetas de span debajo de cada campo del formulario, son las que marco de color azul. Estas etiquetas recogerán el texto del error a la hora de validar el campo. Este texto se define en el JavaScript del fichero validator.js que veremos más adelante.

<form method="post" id="formulario-contacto" role="form" autocomplete="off">
<div class="form-group has-success">
<input class="form-control hidden" type="text" name="pack" value="contacto" readonly placeholder="Nombre" />
<input class="form-control" type="text" name="nombre" placeholder="Nombre" />
<span id="error" class="help-block"></span></div>

<div class="form-group has-error">
<input class="form-control" type="email" name="email" placeholder="Correo electrónico" />
<span id="error" class="help-block"></span></div>

<div class="form-group">
<textarea class="form-control" rows="14" name="mensaje" placeholder="Mensaje"></textarea>
<span id="error" class="help-block"></span></div>

<div class="checkbox">
<label>
<input type="checkbox" name="aceptolopd" value="Acepto Lopd" required />
He leído y acepto la política de protección de datos.</label>

</div>
<div class="form-group">
<button class="btn btn-primary btn-lg" type="submit">Enviar </button>
</div>
</form>

Necesitaremos un archivo de Javascript que llamaremos «validator.js» y que contenga las rutinas necesarias para la validación del formulario. Pongo más abajo el código integro que usaremos para este ejemplo de formulario y que se puede adaptar según la necesidad de cada uno. Como veréis, es muy sencillo y comprensible, y no tendréis ningún problema a la hora de implementar más campos en el formulario y validarlos.

Es evidente que tendremos que hacer la llamada al archivo validator.js desde el html que contiene el formulario. Lo haremos con la siguiente línea de código, y que en la medida de lo posible pondremos al final de la página para que cargue primero los contenidos de la web y luego los recursos externos.

<script src="assets/js/validator.js"></script>

Para este ejemplo, el código javascript se guarda dentro de la carpeta assets/js pero vosotros podéis ponerlo donde lo requiera vuestro proyecto.  En el código destaco en color verde, el nombre de los campos que se han puesto en el formulario Html y el nombre del formulario, que en este ejemplo es «formulario-contacto» precedido de una # como se ve en el código de abajo. Al final del código, destaco en negrita los métodos form.action y form.submit, que el primero contiene el nombre de la página PHP que recibirá los datos del formulario y que realizará el envío del correo electrónico a quien corresponda.

Como podéis ver en el código de abajo, es muy sencillo poder añadir el nombre de otros campos del formulario, en caso de necesitarlos, ya que se trata de un Array y su estructura es muy sencilla de comprender.

Hay que tener en cuenta que esta validación únicamente se hace a nivel de cliente, es decir, si el cliente tiene desactivado JavaScript de su navegador (Que no es lo habitual), no funcionará. No obstante, siempre se puede hacer una validación del lado del servidor, mediante la página que recoge los campos del formulario.

Código para copiar y guardar con el nombre de archivo validator.js 

// JavaScript Validación
$('document').ready(function(){
// Validación para campos de texto exclusivo, sin caracteres especiales ni números
var nameregex = /^[a-zA-Z ]+$/;

$.validator.addMethod("validname", function( value, element ) {
return this.optional( element ) || nameregex.test( value );
});

// Máscara para validación de Email
var eregex = /^([a-zA-Z0-9_.-+])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;

$.validator.addMethod("validemail", function( value, element ) {
return this.optional( element ) || eregex.test( value );
});

$("#formulario-contacto").validate({

rules:
{
nombre: {
required: true,
minlength: 8
},
email: {
required: true,
validemail: true
},
mensaje: {
required: true,
minlength: 20,
maxlength: 300
},
},
messages:
{
nombre: {
required: "Tu Nombre y Apellidos son Importantes",
minlength: "Tu Nombre es demasiado corto"
},
email: {
required: "Por Favor, introduzca una dirección de correo",
validemail: "Introduzca correctamente su correo"
},
mensaje: {
required: "Tu Nombre y Apellidos son Importantes",
minlength: "Tu Mensaje es demasiado corto",
maxlength: "Tu Mensaje supera los 300 caracteres"
},
},
errorPlacement : function(error, element) {
$(element).closest('.form-group').find('.help-block').html(error.html());
},
highlight : function(element) {
$(element).closest('.form-group').removeClass('has-success').addClass('has-error');
},
unhighlight: function(element, errorClass, validClass) {
$(element).closest('.form-group').removeClass('has-error').addClass('has-success');
$(element).closest('.form-group').find('.help-block').html('');
},

submitHandler: function(form) {
form.action="pagina que envia el correo.php";
form.submit();

alert('ok');
}
});
})

Solución Individual

Loading

avatar solind
Antonio Fernández
Apasionado por la creación de experiencias digitales. Mi objetivo es potenciar la presencia en Internet de Empresas y Marcas, mejorando su visibilidad en el mundo digital. [CEO de Solución Individual®] [SEO] [WordPress Expert]
Comparte en tus Redes Sociales:
¿Quieres Hacer una Factura en PDF sin complicarte con un programa de contabilidad?
redes sociales logo hacer facturaQuiero Verlo
¿Necesitas Textos Legales para tu Página Web o Tienda Online?
logo imasitioplus Textos Legales

Adapta fácilmente los Textos Legales para que tu Página Web cumpla con la LOPD (Ley Orgánica de protección de Datos), RGPD, LOPDGDD y LSSICE

Quiero Verlo
¿Necesitas Hosting para WordPress?
PULSA AQUÍ
banner-viajetravel-350px
foto-whatsApp

Cristina

Consultora Soluciones Digitales

03/12/2024

¿En qué puedo ayudarte?

Soy Cristina 😀 consultora de Solución Individual. Para iniciar Chat PULSA AQUÍ

18:11 ✔

¿Te interesa un Hosting Específico para WordPress?

✅ Obtén un Hosting Profesional de alta calidad para WordPress sin sacrificar tu bolsillo. Pulsa Aquí para ver más Info

18:11 ✔