Ir al contenido

Campos obligatorios en JavaScript

La obligatoriedad de los campos del formulario dependerá del tipo de campo que estemos utilizando. Así, la obligatoriedad de un campo de texto puede ser desde que tenga algún valor, hasta que su formato sea uno específico. Si hablamos de campos de selección o en un combo puede ser que esté alguna de las opciones marcada. Así con todos los tipos de elementos del formulario.

Lo primero que vamos a hacer para explicar el ejemplo va a ser construir un simple formulario:

<form id="formulario">
<label for="nombre">Nombre:</label>
<input id="nombre" type="text">
<label for="email">E-Mail:</label>
<input id="email" type="text"></input>
Deporte favorito:
<input id="futbol" name="deporte" type="checkbox" value="futbol"></input>
<label for="futbol">Futbol</label>
<input id="baloncesto" name="deporte" type="checkbox" value="baloncesto"></input>
<label for="baloncesto">Baloncesto</label>
<input id="atletismo" name="deporte" type="checkbox" value="atletismo"></input>
<label for="atletismo">Atletismo</label>
<button onclick="validar();">Validar</button>
</form>

Vemos que el botón de validación llama a la función validar(). Dentro de esta función dispondremos todos los controles de obligatoriedad de los campos. El primer control de obligatoriedad es el de los campos de texto. Para ello accedemos directamente a la colección de los elementos del formulario mediante .elements.

var elementos = document.getElementById('formulario').elements;

Hay que tener en cuenta que esto nos devuelve todos los elementos. Es decir, en nuestro caso 6 elementos. Los dos campos de texto, las 3 opciones y el botón. Como solo nos interesan los campos de texto, lo que vamos a hacer es filtrar por aquellos elementos que sean del tipo "text".

for (var i = 0; i < elementos.length; i++) {
if (elementos[i].type == "text") {
// Validar campo de texto
}
}

Si el campo es de texto y está vacío le sacamos un error avisándole y terminamos la ejecución del método mediante un return false.

if (elementos[i].value == "") {
alert("El campo " + elementos[i].id + " no puede estar vacío");
return false;
}

Lo siguiente que vamos a validar son los campos de opciones. En este caso vamos a acceder por nombre mediante el método getElementsByName. Ya que todos los elementos tienen el name "deporte".

var deportes = document.getElementsByName('deporte');

Lo que nos interesa es encontrar alguno que esté seleccionado. Es por ello que haremos un bucle cuya condición de salida sea el haber recorrido todos los elementos o haber encontrado alguno marcado.

var marcado = false;
for (var i = 0; i < deportes.length && !marcado; i++) {
if (deportes[i].checked) {
marcado = true;
}
}
if (!marcado) {
alert("Debe seleccionar al menos un deporte");
return false;
}
Foto de Víctor Cuervo

Víctor Cuervo

Programador, Arquitecto IT, álter ego de Línea de Código, amante de las tecnologías, generador de conocimiento y facilitador del aprendizaje.

Descarga el código de Campos obligatorios en JavaScript

Como conseguir realizar un código fuente que fuerze a tener campos obligatorios en JavaScript.

Descargar código