Está en la página 1de 11

Validación con html 5

Una de las características más importantes de los controles de formulario de HTML5 es la


capacidad de validar la mayoría de los datos de usuario sin depender de JavaScript. Esto se realiza
mediante el uso de atributos de validación en los elementos del formulario. Los hemos visto
anteriormente en el curso, pero recapitulamos aquí:

• required (en-US): Especifica si un campo de formulario debe completarse antes de que se


pueda enviar el formulario.
• minlength y maxlength (en-US): Especifican la longitud mínima y máxima de los datos de
texto (cadenas).
• min y max (en-US): Especifican los valores mínimo y máximo de los tipos de entrada
numéricos.
• type: Especifica si los datos deben ser un número, una dirección de correo electrónico o
algún otro tipo de preajuste específico.
• pattern (en-US): Especifica una expresión regular que define un patrón que los datos que
se introduzcan deben seguir.
• Si los datos que se introducen en un campo de formulario siguen todas las reglas que
especifican los atributos anteriores, se consideran válidos. Si no, se consideran no válidos.

Cuando un elemento es válido, se cumplen los aspectos siguientes:

El elemento coincide con la pseudoclase :valid de CSS, lo que te permite aplicar un estilo específico
a los elementos válidos.

Si el usuario intenta enviar los datos, el navegador envía el formulario siempre que no haya nada
más que lo impida (por ejemplo, JavaScript).

Cuando un elemento no es válido, se cumplen los aspectos siguientes:

El elemento coincide con la pseudoclase :invalid de CSS, y a veces con otras pseudoclases de
interfaz de usuario (UI) –por ejemplo, :out-of-range– dependiendo del error, que te permite
aplicar un estilo específico a elementos no válidos.

Si el usuario intenta enviar los datos, el navegador bloquea el formulario y muestra un mensaje de
error.

<input type="email" id="email_addr" name="direccion-correo" required />


Validación: atributo pattern
El atributo pattern especifica una expresión regular usada para validar los campos de

entrada. Por ejemplo, si se supone que la entrada ha de tener el siguiente formato: 3

letras en mayúsculas seguidas de 4 números. El uso de required y pattern asegura

que la entrada debe ser rellenada siguiendo la expresión regular. Al situarse el usuario

sobre la entrada, el mensaje en el atributo title se muestra.

<input type="text" id="referencia" name="referencia" required

pattern="[A-Z]{3}[0-9]{4}"

title="El formato debe coincidir con 3 letras mayúsculas y 4

números."/>

Validación de formularios con JavaScript

En este apartado se va a describir como validar un formulario con un script en

JavaScript. Esto significa que se fijarán unas condiciones para cuando el usuario

rellene los diversos campos del formulario. Si las condiciones son las esperadas, el

formulario podrá enviarse, de lo contrario, el envío será cancelado.

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-

8859-15" />

<title>Validación de un formulario con JavaScript</title>

<script type="text/javascript">

function valida(f) {
var ok = true;

var msg = "Debes escribir contenido en los campos:\n";

if(f.elements[0].value == "")

msg += "- Marca 1\n";

ok = false;

if(f.elements["marca2"].value == "")

msg += "- Marca 2\n";

ok = false;

if(f.marca3.value == "")

msg += "- Marca 3\n";

ok = false;

if(ok == false)

alert(msg);

return ok;

</script>

</head>

<body lang="es">

Introduce tus marcas de coches favoritas<br>

<form id="miFormulario" action="" method="get" onsubmit="return

valida(this)">

<p>

Marca 1: <input type="text" id="marca1" />


<br />

Marca 2: <input type="text" id="marca2" />

<br />

Marca 3: <input type="text" id="marca3" />

<br />

<input type="submit" value="Enviar" />

<input type="reset" value="Borrar" />

</p>

</form>

</body>

</html>

Validacion con bootstrap 5

¿Cómo funciona la validación?

Así es como funciona la validación de formularios con Bootstrap:

La validación de formularios HTML se aplica a través de dos pseudoclases de CSS,

:invalid y :valid. Se aplica a los elementos <input>, <select> y <textarea>.

Bootstrap aplica los estilos :invalid y :valid a la clase padre .was-validated,

generalmente aplicada a <form>. De lo contrario, cualquier campo obligatorio sin

valor aparecerá como no válido al cargar la página. De esta forma, puedes elegir

cuándo activarlos (por lo general, después de intentar enviar el formulario).

Para restablecer la apariencia del formulario (por ejemplo, en el caso de envíos de

formularios dinámicos usando AJAX), elimina la clase .was-validated del <form>

nuevamente después del envío.

Como alternativa, las clases .is-invalid y .is-valid se pueden usar en lugar de las

pseudoclases para validación del lado del servidor. No requieren una clase padre

.was-validated.
Debido a restricciones en el funcionamiento de CSS, no podemos (en este

momento) aplicar estilos a una <label> que se encuentra antes de un control de

formulario en el DOM sin la ayuda de JavaScript personalizado.

Todos los navegadores modernos admiten la API de validación de restricciones,

una serie de métodos de JavaScript para validar controles de formulario.

Los mensajes de feedback pueden utilizar los predeterminados del navegador

(diferentes para cada navegador y sin estilo a través de CSS) o nuestros estilos

personalizados de feedback con HTML y CSS adicionales.

<form class="row g-3 needs-validation" novalidate>

<div class="col-md-4">

<label for="validationCustom01" class="form-

label">Nombre</label>

<input type="text" class="form-control"

id="validationCustom01" value="Mark" required>

<div class="valid-feedback">

¡Se ve bien!

</div>

</div>

<div class="col-md-4">

<label for="validationCustom02" class="form-

label">Apellido</label>

<input type="text" class="form-control"

id="validationCustom02" value="Otto" required>

<div class="valid-feedback">

¡Se ve bien!
</div>

</div>

<div class="col-md-4">

<label for="validationCustomUsername" class="form-

label">Nombre de usuario</label>

<div class="input-group has-validation">

<span class="input-group-text"

id="inputGroupPrepend">@</span>

<input type="text" class="form-control"

id="validationCustomUsername" aria-describedby="inputGroupPrepend"

required>

<div class="invalid-feedback">

Por favor, elije un nombre de usuario.

</div>

</div>

</div>

<div class="col-md-6">

<label for="validationCustom03" class="form-

label">Ciudad</label>

<input type="text" class="form-control"

id="validationCustom03" required>

<div class="invalid-feedback">

Proporciona una ciudad válida.

</div>

</div>

<div class="col-md-3">
<label for="validationCustom04" class="form-

label">Estado</label>

<select class="form-select" id="validationCustom04" required>

<option selected disabled value="">Elige...</option>

<option>...</option>

</select>

<div class="invalid-feedback">

Selecciona un estado válido.

</div>

</div>

<div class="col-md-3">

<label for="validationCustom05" class="form-label">Código

postal</label>

<input type="text" class="form-control"

id="validationCustom05" required>

<div class="invalid-feedback">

Proporciona un código postal válido.

</div>

</div>

<div class="col-12">

<div class="form-check">

<input class="form-check-input" type="checkbox" value=""

id="invalidCheck" required>

<label class="form-check-label" for="invalidCheck">

Acepta los términos y condiciones

</label>

<div class="invalid-feedback">
Debe estar de acuerdo antes de enviar.

</div>

</div>

</div>

<div class="col-12">

<button class="btn btn-primary" type="submit">Enviar

formulario</button>

</div>

</form>

// Ejemplo de JavaScript inicial para deshabilitar el envío de

formularios si hay campos no válidos

(function () {

'use strict'

// Obtener todos los formularios a los que queremos aplicar estilos

de validación de Bootstrap personalizados

var forms = document.querySelectorAll('.needs-validation')

// Bucle sobre ellos y evitar el envío

Array.prototype.slice.call(forms)

.forEach(function (form) {

form.addEventListener('submit', function (event) {

if (!form.checkValidity()) {

event.preventDefault()

event.stopPropagation()

form.classList.add('was-validated')

}, false)

})
Referencias bibliográficas

http://regexpre.orgfree.com/

https://developer.mozilla.org/es/docs/Learn/Forms/Form_validation

https://lenguajehtml.com/html/formularios/validaciones-html5/

También podría gustarte