<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Validaciones de Formularios - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Descubre miles de cursos de programación escritos por expertos. Aprende Desarrollo Web, Ciencia de Datos, DevOps, Seguridad y obtén asesoramiento profesional para desarrolladores. ]]>
        </description>
        <link>https://www.freecodecamp.org/espanol/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Validaciones de Formularios - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/espanol/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sun, 24 May 2026 19:37:32 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/espanol/news/tag/validaciones-de-formularios/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Validación de datos: Cómo verificar la entrada del usuario en formularios HTML con código JavaScript de ejemplo. ]]>
                </title>
                <description>
                    <![CDATA[ Artículo original escrito por: Shruti Kapoor [https://www.freecodecamp.org/news/author/shrutikapoor08/] Artículo original: Data Validation – How to Check User Input on HTML Forms with Example JavaScript Code [https://www.freecodecamp.org/news/form-validation-with-html5-and-javascript/] Traducido y adaptado por: Sil Zubikarai [/espanol/news/author/sil/] Los formularios son omnipresentes en las aplicaciones web. Algunas aplicaciones usan formularios para recolectar datos para registrar  usuarios ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/validacion-de-data-como-revisar-la-entrada-del-usuario-en-formularios-html-con-ejemplo/</link>
                <guid isPermaLink="false">6230f7be8a4d8908bdad02ef</guid>
                
                    <category>
                        <![CDATA[ Validaciones de Formularios ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Sil Zubikarai ]]>
                </dc:creator>
                <pubDate>Mon, 28 Mar 2022 01:23:14 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2022/03/6003768298be260817e4aadc.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong>Artículo original escrito por</strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong>:</strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong> </strong></strong></strong></strong></strong></strong></strong></strong><a href="https://www.freecodecamp.org/news/author/shrutikapoor08/">Shruti Kapoor</a><br><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong>Artículo original</strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong>:</strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong> </strong><a href="https://www.freecodecamp.org/news/form-validation-with-html5-and-javascript/">Data Validation – How to Check User Input on HTML Forms with Example JavaScript Code</a><br><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong><strong>Traducido y adaptado por</strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong>:</strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong> </strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong></strong><a href="https://www.freecodecamp.org/espanol/news/author/sil/">Sil Zubikarai</a></p><p>Los formularios son omnipresentes en las aplicaciones web. Algunas aplicaciones usan formularios para recolectar datos para registrar &nbsp;usuarios y proporcionar una dirección de correo electrónico. Otros los usan para realizar &nbsp;transacciones en línea electrónicas para facilitar una experiencia de compra.</p><p>Puedes usar algunos formularios web para solicitar &nbsp;un &nbsp;préstamo de automóvil nuevo, mientras que usaras otros para pedir una pizza para la cena. Por lo tanto, es importante que los datos recolectados de estos formularios hayan sido limpiados, estén en el &nbsp;formato correcto, y carezcan de cualquier código malicioso. Este proceso es llamado validación de formularios.</p><p>Necesitamos validación de formulario en cualquier momento que estamos aceptando una entrada de un usuario. Debemos asegurarnos que los datos estén ingresados en el formato correcto, se encuentre dentro del rango válido de datos (como para los campos de datos de fechas), y no contengan código malicioso que pueda conducir a inyecciones SQL. Mal formados o datos faltantes que puedan causar que la API genere errores. </p><h2 id="-cu-les-son-los-diferentes-tipos-de-validaciones">¿Cuáles son los diferentes tipos de validaciones?</h2><p>La validación de formulario puede pasar en el lado del cliente y en el lado del servidor.</p><p>La validación del lado del cliente se produce mediante atributos HTML5 &nbsp;y del lado del cliente JavaScript.</p><p>Puedes haber notado que algunos formularios, &nbsp;tan pronto como ingresas un correo electrónico inválido, el formulario marca un error "Por favor ingresa un correo electrónico válido". &nbsp;Este tipo inmediato de validación usualmente es hecho por el lado del cliente vía JavaScript.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/04/form-validation-cc.gif" class="kg-image" alt="Validation error for incorrect credit card number" width="600" height="400" loading="lazy"></figure><p></p><p>En otros casos, tú puedes haber notado que cuando tú llenas un formulario e ingresas detalles como la tarjeta de crédito, este puede mostrar una pantalla de carga y luego mostrar un error "La tarjeta de crédito es inválida".</p><p>Aquí, el formulario hace una llamada a su código de lado del servidor, y regresa un error de validación después de realizar revisiones adicionales de tarjeta de crédito. Este caso de validación donde la llamada del lado del servidor &nbsp;es llamada validación del lado del servidor.</p><h2 id="-por-qu-los-datos-deben-ser-validados"><strong>¿Por qué los datos deben ser validados?</strong></h2><p></p><p>La validación es requerida en cualquier momento que aceptas datos del usuario. Esto puede incluir:</p><ol><li> Validar el formato de los campos como dirección de correo electrónico, número telefónico, &nbsp;código postal, nombre, contraseña.</li><li>Validar campos obligatorios.</li><li>Revisar los datos como cadenas de texto vs. números para campos como número de seguridad social.</li><li>Asegurar que el valor ingresado es un valor válido como país, datos y así.</li></ol><h2 id="como-configurar-la-validaci-n-del-lado-del-cliente"><strong>Como configurar la validación del lado del cliente</strong></h2><p>En el lado del cliente, la validación se puede llevar a cabo de dos maneras:</p><ol><li>Usando funcionalidad HTML5</li><li>Usando JavaScript</li></ol><h3 id="como-configurar-la-validaci-n-con-funcionalidad-html5"><strong>Como configurar la validación con funcionalidad HTML5</strong></h3><p>HTML5 &nbsp;provee un montón de atributos para ayudar con la validación de datos. Aquí hay algunos casos comunes de validación.</p><!--kg-card-begin: markdown--><ul>
<li>Crear campos requeridos usando <code>required</code></li>
<li>Limitar la longitud de los datos:
<ul>
<li><code>minlength</code>, <code>maxlength</code>: para datos de texto</li>
<li><code>min</code> y <code>max</code> para el valor máximo del tipo num</li>
</ul>
</li>
<li>Restringir el tipo de datos usando <code>type</code>:
<ul>
<li><code>&lt;input type="email" name="multiple&gt;</code></li>
</ul>
</li>
<li>Especificación de patrones de datos usando <code>pattern</code>:
<ul>
<li>Especifica un patrón de expresiones regulares que los datos ingresados deben coincidir</li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><p>Cuando el valor de entrada coincide la validación HTML5, es asignado a una clase psuedo <code>:valid</code>, y <code>:invalid</code> si no lo hace.</p><p>Vamos a intentar un ejemplo:</p><pre><code class="language-html">&lt;form&gt;
&lt;label for="firstname primernombre"&gt; Nombre: &lt;/label&gt;
&lt;input type="text" name="firstname" id="firstname" required maxlength="45"&gt;
&lt;label for="lastname"&gt; Apellido: &lt;/label&gt;
&lt;input type="text" name="lastname" id="lastname" required maxlength="45"&gt;
&lt;button&gt;Submit&lt;/button&gt;
&lt;/form&gt;
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/04/form-validation-required.png" class="kg-image" alt="Client side form validation for required fields using HTML5 attributes" width="600" height="400" loading="lazy"></figure><p><a href="https://jsfiddle.net/58xc2qyj/">Enlace a JSFiddle</a> </p><p>Aquí tenemos dos campos requeridos: Primer Nombre y Apellido. Intenta este ejemplo en JSFidle. Si omites cualquiera de estos campos y presionas enviar, recibirás un mensaje, "Por favor llena este campo". Esta es la validación usando HTML5 &nbsp;incorporado.</p><h3 id="como-configurar-la-validaci-n-usando-javascript"><strong>Como configurar la validación usando JavaScript</strong></h3><p>Cuando implementamos la validación de formulario, hay algunas cosas que debemos considerar:</p><ol><li>¿Qué se define como datos "válidos"? Esto le ayuda a responder preguntas sobre el formato, la longitud, los campos obligatorios, y el tipo de datos.</li><li>¿Qué pasa cuando un dato inválido ingresa? Esto te ayudará a definir la experiencia del usuario de la validación - si desea mostrar un mensaje de error en línea o en la parte superior del formulario, ¿qué tan detallado debe de ser el mensaje de error, &nbsp;si el formulario debe omitirse de todos modos, debe de haber análisis para rastrear formatos inválidos o datos? Y así sucesivamente.</li></ol><p>Puedes realizar la validación de JavaScript en dos formas:</p><ol><li>Validación en línea usando JavaScript</li><li> API de validación de restricciones HTML5</li></ol><p><strong>Validación en línea mediante JavaScript</strong></p><pre><code class="language-html">&lt;form id="form"&gt;
  &lt;label for="firstname"&gt; Nombre* &lt;/label&gt;
  &lt;input type="text" name="firstname" id="firstname" /&gt;
  &lt;button id="submit"&gt;Submit&lt;/button&gt;

  &lt;span role="alert" id="nameError" aria-hidden="true"&gt;
    Por favor ingresa el nombre.
  &lt;/span&gt;
&lt;/form&gt;
</code></pre><pre><code class="language-javascript">const submit = document.getElementById("submit");

submit.addEventListener("click", validate);

function validate(e) {
  e.preventDefault();

  const firstNameField = document.getElementById("firstname");
  let valid = true;

  if (!firstNameField.value) {
    const nameError = document.getElementById("nameError");
    nameError.classList.add("visible");
    firstNameField.classList.add("invalid");
    nameError.setAttribute("aria-hidden", false);
    nameError.setAttribute("aria-invalid", true);
  }
  return valid;
}
</code></pre><pre><code class="language-css">#nameError {
  display: none;
  font-size: 0.8em;
}

#nameError.visible {
  display: block;
}

input.invalid {
  border-color: red;
}
</code></pre><p><a href="https://jsfiddle.net/0tq3e49w/4/">Enlace a JSFiddle</a></p><p>En este ejemplo, vamos a revisar los campos requeridos usando JavaScript. Si un campo requerido no está presente, usamos CSS para mostrar un mensaje de error.</p><p>Las etiquetas Aria sé modifican en consecuencia para mostrar un error. Usando CSS para mostrar/ocultar un error, estamos reduciendo el número de manipulaciones que necesitamos hacer en el DOM. El mensaje de error se proporciona en contexto, lo que hace que la experiencia del usuario sea intuitiva.</p><h3 id="api-de-validaci-n-de-restricciones-html5"><strong>API de validación de restricciones HTML5</strong></h3><p>Los atributos HTML <code>required</code> y <code>pattern</code> pueden ayudar a realizar una validación básica. Pero si requieres una validación más compleja o quieres proporcionar un mensaje de error detallado, puedes usar la API de validación de restricciones.</p><p>Algunos métodos provistos por esta API son:</p><ol><li><code>checkValidity</code></li><li><code>setCustomValidity</code></li><li><code>reportValidity</code></li></ol><p>Las siguientes propiedades son útiles:</p><ol><li><code>validity</code></li><li><code>validationMessage</code></li><li><code>willValidate</code></li></ol><p>En este ejemplo, vamos a validar utilizando métodos incorporados HTML5, como <code>required</code> y <code>length</code> &nbsp;junto con la API de validación de restricciones para proporcionar mensajes de error detallados.</p><pre><code class="language-html">&lt;form&gt;
&lt;label for="firstname"&gt; First Name: &lt;/label&gt;
&lt;input type="text" name="firstname" required id="firstname"&gt;
&lt;button&gt;Submit&lt;/button&gt;
&lt;/form&gt;
</code></pre><pre><code class="language-javascript">const nameField = document.querySelector("input");

nameField.addEventListener("input", () =&gt; {
  nameField.setCustomValidity("");
  nameField.checkValidity();
  console.log(nameField.checkValidity());
});

nameField.addEventListener("invalid", () =&gt; {
  nameField.setCustomValidity("Please fill in your First Name.");
});
</code></pre><p><a href="https://jsfiddle.net/xz2wjLck/1/">Enlace a JSFiddle</a></p><h2 id="no-olvides-la-validaci-n-del-lado-del-servidor"><strong>No olvides la validación del lado del servidor</strong></h2><p>La validación del lado del cliente no es la única revisión de validación que deberías hacer. Debes también validar los datos recibidos por el cliente en el código del lado el servidor para asegurar que los datos coincidan con lo que esperas que sea. </p><p>También se puede utilizar la validación del lado del servidor para realizar verificaciones de lógica empresarial que no deberían estar activas en el lado del cliente.</p><h2 id="mejores-pr-cticas-de-validaci-n-de-formularios"><strong>Mejores prácticas de validación de formularios</strong></h2><ol><li> Siempre ten una validación del lado del servidor, dado que maliciosos actores puede pasar la validación del lado del cliente.</li><li>Proporciona mensajes de error detallados en contexto con el campo que produjo el error.</li><li> Proporciona un ejemplo de que los datos deberían verse en caso de un mensaje de error, como - El email no coincide con el formato-<a href="mailto:test@example.com"> prueba@ejemplo.com"</a></li><li>Evita el uso de páginas de error individuales que impliquen una redirección. Esto es una mala experiencia para el usuario y fuerza al usuario a regresar a la página previa a corregir el formulario y perdiendo contexto.</li><li>Siempre marca los campos requeridos.</li></ol><h3></h3> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Validación de datos: cómo verificar la entrada del usuario en formularios HTML con código JavaScript de ejemplo ]]>
                </title>
                <description>
                    <![CDATA[ Los formularios son omnipresentes en las aplicaciones web. Algunas aplicaciones usan formularios para recopilar datos para registrar usuarios y proporcionar una dirección de correo electrónico. Otros los utilizan para realizar transacciones en línea para facilitar una experiencia de compra. Puedes usar algunos formularios web para solicitar un préstamo de automóvil ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/validacion-de-datos-como-verificar-la-entrada-del-usuario-en-formularios-html-con-codigo-javascript-de-ejemplo/</link>
                <guid isPermaLink="false">6056c6ac540cd708b5737f72</guid>
                
                    <category>
                        <![CDATA[ Validaciones de Formularios ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Cristian Sulbaran  ]]>
                </dc:creator>
                <pubDate>Tue, 11 May 2021 05:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2021/03/photo-1554252116-30abdf759321.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Los formularios son omnipresentes en las aplicaciones web. Algunas aplicaciones usan formularios para recopilar datos para registrar usuarios y proporcionar una dirección de correo electrónico. Otros los utilizan para realizar transacciones en línea para facilitar una experiencia de compra.</p><p>Puedes usar algunos formularios web para solicitar un préstamo de automóvil nuevo, mientras que usarás otros para pedir pizza para la cena. Por lo tanto, es importante que los datos recopilados de esos formularios se limpien, se formateen correctamente y no contengan ningún código malicioso. Este proceso se denomina validación de formularios.</p><p>Necesitamos la validación del formulario cada vez que aceptamos la entrada del usuario. Debemos asegurarnos de que los datos ingresados estén en el formato correcto, se encuentren dentro de un rango válido de datos (como para los campos de fecha) y no contengan código malicioso que pueda dar lugar a inyecciones SQL. Los datos mal formados o faltantes también pueden hacer que la API arroje errores.</p><h2 id="-cu-les-son-los-diferentes-tipos-de-validaciones-de-formularios">¿Cuáles son los diferentes tipos de validaciones de formularios?</h2><p>La validación del formulario puede ocurrir en el lado del cliente y en el lado del servidor.</p><p>La validación del lado del cliente se produce utilizando atributos HTML5 y JavaScript del lado del cliente.</p><p>Es posible que hayas notado en algunos formularios, tan pronto como ingresas una dirección de correo electrónico inválida, el formulario muestra el error "Ingrese un correo electrónico válido". Este tipo inmediato de validación generalmente se realiza a través de JavaScript del lado del cliente.</p><p>En otros casos, es posible que hayas notado cuando completas un formulario e ingresas detalles como una tarjeta de crédito, puede mostrar una pantalla de carga y luego mostrar un error "Esta tarjeta de crédito no es válida".</p><p>Aquí, el formulario realizó una llamada al código del lado del servidor y devolvió un error de validación después de realizar verificaciones adicionales de la tarjeta de crédito. Este caso de validación en el que se realiza una llamada del lado del servidor se denomina validación del lado del servidor.</p><h2 id="-qu-datos-se-deben-validar">¿Qué datos se deben validar?</h2><p>La validación del formulario es necesaria cada vez que aceptas datos de un usuario. Esto puede incluir:</p><p>1.	Validando el formato de campos como dirección de correo electrónico, número de teléfono, código postal, nombre, contraseña.</p><p>2.	Validando campos obligatorios.</p><p>3.	Verificación del tipo de datos, como cadenas contra números, para campos como el número de seguro social.</p><p>4.	Asegurarte de que el valor ingresado sea un valor válido, como país, fecha, etc.</p><h2 id="c-mo-configurar-la-validaci-n-del-lado-del-cliente">Cómo configurar la validación del lado del cliente</h2><p>En el lado del cliente, la validación se puede realizar de dos formas: </p><p>1.	Utilizando la funcionalidad HTML5 </p><p>2.	Utilizando JavaScript</p><h3 id="c-mo-configurar-la-validaci-n-con-la-funcionalidad-html5">Cómo configurar la validación con la funcionalidad HTML5</h3><p>HTML5 proporciona una serie de atributos para ayudar a validar los datos. A continuación, se muestran algunos casos de validación comunes:</p><ul><li>Hacer que los campos sean obligatorios usando <code>required</code></li><li>Restringir la longitud de los datos:<br>- <code>minlength</code>, <code>maxlength</code>: para datos de texto<br>- <code>min</code> y <code>max</code> para el valor máximo del tipo número<br></li><li>Restringir el tipo de datos usando <code>type</code>:<br><code>&lt;input type="email" name="multiple" /&gt;</code><br></li><li>Especificar patrones de datos usando <code>pattern</code>:<br>Especifica un patrón de expresiones regulares que los datos ingresados del formulario deben coincidir.</li></ul><p>Cuando el valor de entrada coincide con la validación HTML5 anterior, se le asigna un pseudo-clase <code>:valid</code>, e <code>:invalid</code> si no lo hace.</p><p>Probemos con un ejemplo:</p><figure class="kg-card kg-code-card"><pre><code class="language-html">&lt;form&gt;
&lt;label for="nombre"&gt; Nombre: &lt;/label&gt;
&lt;input type="text" name="nombre" id="nombre" required maxlength="45" /&gt;
&lt;label for="apellido"&gt; Apellido: &lt;/label&gt;
&lt;input type="text" name="apellido" id="apellido" required maxlength="45" /&gt;
&lt;button&gt;Enviar&lt;/button&gt;
&lt;/form&gt;
</code></pre><figcaption>Validación de formulario de lado de cliente para campos requeridos utilizando atributos HTML5</figcaption></figure><p><a href="https://jsfiddle.net/58xc2qyj/">Enlace a JSFiddle</a> (inglés)</p><p>Aquí tenemos dos campos obligatorios: nombre y apellido. Prueba este ejemplo en <a href="https://jsfiddle.net/58xc2qyj/">JSFiddle</a>. Si omites cualquiera de estos campos y presionas enviar, recibirás un mensaje, "Por favor complete este campo". Esta es la validación mediante HTML5 incorporado.</p><h3 id="c-mo-configurar-la-validaci-n-usando-javascript">Cómo configurar la validación usando JavaScript</h3><p>Al implementar la validación de formularios, hay algunas cosas a considerar:</p><p>1.	¿Qué se define como datos "válidos"? Esto ayuda a responder preguntas sobre el formato, la longitud, los campos obligatorios y el tipo de datos.</p><p>2.	¿Qué sucede cuando se ingresan datos inválidos? Esto ayudará a definir la experiencia del usuario de la validación: ya sea para mostrar un mensaje de error en-línea o en la parte superior del formulario, ¿cuán detallado debe ser el mensaje de error?, ¿el formulario debe enviarse de todos modos?, ¿debería haber analíticas para rastrear el formato inválido de datos?, etc.</p><p>Puedes realizar la validación de JavaScript de dos formas:</p><p>1.	Validación en-línea usando JavaScript.</p><p>2.	API de validación de restricciones HTML5</p><h3 id="validaci-n-en-l-nea-usando-javascript">Validación en-línea usando JavaScript</h3><pre><code class="language-html">&lt;form id="form"&gt;
  &lt;label for="nombre"&gt; Nombre* &lt;/label&gt;
  &lt;input type="text" name="nombre" id="nombre" /&gt;
  &lt;button id="enviar"&gt;Enviar&lt;/button&gt;

  &lt;span role="alert" id="nombreError" aria-hidden="true"&gt;
    Ingrese su nombre, por favor
  &lt;/span&gt;
&lt;/form&gt;
</code></pre><pre><code class="language-javascript">const enviar = document.getElementById("enviar");

enviar.addEventListener("click", validar);

function validar(e) {
  e.preventDefault();

  const campoNombre = document.getElementById("nombre");
  let valido = true;

  if (!campoNombre.value) {
    const nombreError = document.getElementById("nombreError");
    nombreError.classList.add("visible");
    campoNombre.classList.add("invalido");
    nombreError.setAttribute("aria-hidden", false);
    nombreError.setAttribute("aria-invalid", true);
  }
  return valido;
}
</code></pre><pre><code class="language-css">#nombreError {
  display: none;
  font-size: 0.8em;
}

#nombreError.visible {
  display: block;
}

input.invalido {
  border-color: red;
}
</code></pre><p><a href="https://jsfiddle.net/0tq3e49w/4/">Enlace a JSFiddle</a>(inglés).</p><p>En este ejemplo, verificamos los campos obligatorios usando JavaScript. Si un campo obligatorio no está presente, usamos CSS para mostrar el mensaje de error.</p><p>Las etiquetas <code>Aria</code> se modifican en consecuencia para señalar un error. Al usar CSS para mostrar/ocultar un error, estamos reduciendo la cantidad de manipulaciones DOM que necesitamos realizar. El mensaje de error se proporciona en contexto, lo que hace que la experiencia del usuario sea intuitiva.</p><h3 id="api-de-validaci-n-de-restricciones-html5">API de validación de restricciones HTML5</h3><p>Los atributos HTML <code>required</code> y <code>pattern</code> pueden ayudar a realizar una validación básica. Pero si deseas una validación más compleja o deseas proporcionar mensajes de error detallados, puedes utilizar la API de validación de restricciones. </p><p>Algunos métodos proporcionados por esta API son:</p><ol><li><code>checkValidity</code></li><li><code>setCustomValidity</code></li><li><code>reportValidity</code></li></ol><p>Las siguientes propiedades son útiles:</p><ol><li><code>validity</code></li><li><code>validationMessage</code></li><li><code>willValidate</code></li></ol><p>En este ejemplo, validaremos utilizando métodos incorporados de HTML5, como <code>required</code> y <code>length</code>, junto con la API de validación de restricciones para proporcionar mensajes de error detallados.</p><pre><code class="language-html">&lt;form&gt;
&lt;label for="nombre"&gt; Nombre: &lt;/label&gt;
&lt;input type="text" name="nombre" required id="nombre" /&gt;
&lt;button&gt;Enviar&lt;/button&gt;
&lt;/form&gt;
</code></pre><pre><code class="language-javascript">const campoNombre = document.querySelector("input");

campoNombre.addEventListener("input", () =&gt; {
  campoNombre.setCustomValidity("");
  campoNombre.checkValidity();
  console.log(campoNombre.checkValidity());
});

campoNombre.addEventListener("invalid", () =&gt; {
  campoNombre.setCustomValidity("Por favor, ingrese su nombre.");
});
</code></pre><p><a href="https://jsfiddle.net/xz2wjLck/1/">Enlace a JSFiddle</a>(inglés)</p><h2 id="no-olvides-la-validaci-n-del-lado-del-servidor">No olvides la validación del lado del servidor</h2><p>La validación del lado del cliente no es la única verificación de validación que debes realizar. También debes validar los datos recibidos del cliente en el código del lado del servidor para asegurarte de que los datos coincidan con lo que esperas que sean.</p><p>También puedes utilizar la validación del lado del servidor para realizar verificaciones de la lógica empresarial que no deberían estar en el lado del cliente.</p><h2 id="mejores-pr-cticas-de-validaci-n-de-formularios">Mejores prácticas de validación de formularios</h2><ol><li>Siempre ten validaciones del lado del servidor, ya que los actores malintencionados pueden eludir la validación del lado del cliente.</li><li>Proporciona mensajes de error detallados en contexto con el campo que produjo el error.</li><li>Proporciona un ejemplo de cómo deberían verse los datos en caso de un mensaje de error, como "El formato del correo electrónico no coincide - <a>prueba@ejemplo.com</a>".</li><li>Evita el uso de páginas de error único que impliquen redireccionamiento. Esta es una mala experiencia de usuario y obliga al usuario a volver a una página anterior para corregir el formulario y perder el contexto.</li><li>Marca siempre los campos obligatorios.</li></ol><h3 id="-interesado-en-m-s-tutoriales-y-art-culos-como-este-inscr-bete-al-bolet-n-de-noticias-o-sigue-a-shruti-en-twitter">¿Interesado en más tutoriales y artículos como este? <a href="https://tinyletter.com/shrutikapoor">Inscríbete al boletín de noticias</a>, o sigue a <a href="https://twitter.com/shrutikapoor08">Shruti en Twitter</a></h3><p></p><p>Traducido del artículo de <strong><a href="https://www.freecodecamp.org/news/author/shrutikapoor08/">Shruti Kapoor</a></strong> - <strong><a href="https://www.freecodecamp.org/news/form-validation-with-html5-and-javascript/">Data Validation – How to Check User Input on HTML Forms with Example JavaScript Code</a></strong></p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
