{"id":29105,"date":"2021-06-07T09:53:00","date_gmt":"2021-06-07T06:53:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=29105"},"modified":"2021-10-17T16:26:01","modified_gmt":"2021-10-17T13:26:01","slug":"validacion-de-formularios-html-con-perejil","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/es\/validacion-de-formularios-html-con-perejil\/","title":{"rendered":"Validaci\u00f3n de formularios HTML con perejil"},"content":{"rendered":"<p>\u00bfEst\u00e1 buscando aplicar validaciones en su formulario HTML? Las validaciones del lado del cliente son \u00fatiles para garantizar que todos los campos del formulario est\u00e9n completos y en un formato adecuado. Ayuda a los usuarios a corregir cualquier dato no v\u00e1lido de inmediato. Siempre debe tener validaciones del lado del cliente en los formularios de su sitio web. Si lo omite y aplica solo la validaci\u00f3n del lado del servidor, retrasar\u00eda el env\u00edo del formulario en caso de errores.<\/p>\n<p><a href=\"https:\/\/parsleyjs.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">El perejil<\/a> es una biblioteca de validaci\u00f3n de formularios \u00fatil que es f\u00e1cil de integrar. Esta biblioteca proporciona una mejor experiencia de usuario en comparaci\u00f3n con las validaciones HTML5 predeterminadas. Necesita escribir solo algunas declaraciones y listo. El perejil proporciona un amplio conjunto de opciones con las que puede ampliar sus validaciones personalizadas. No voy a cubrir todas las opciones. El prop\u00f3sito de este tutorial es familiarizarlo con Parsley y mostrarle c\u00f3mo aplicar validaciones b\u00e1sicas. Uno puede explorar su documentaci\u00f3n y familiarizarse con todas las funciones que ofrece la biblioteca.<\/p>\n<p>Para este tutorial, voy a crear un formulario simple con pocos campos como nombre, correo electr\u00f3nico, g\u00e9nero, etc. Todos los campos del formulario son obligatorios y aplicaremos validaciones usando Parsley en nuestro formulario.<\/p>\n<p>Para validar el formulario usando Parsley, necesitamos incluir su archivo JS. Lo har\u00e9 usando CDN.<\/p>\n<p>Perejil recomienda usar su propio estilo para los mensajes de error. Pero para prop\u00f3sitos de prueba, puede usar su archivo CSS disponible en <a href=\"https:\/\/parsleyjs.org\/src\/parsley.css\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">este enlace<\/a>.<\/p>\n<h3>C\u00f3mo usar perejil<\/h3>\n<p>Para el prop\u00f3sito de la demostraci\u00f3n, voy a crear un formulario usando Bootstrap. As\u00ed que incluir\u00e9 Bootstrap usando CDN junto con los archivos de Parsley. Tambi\u00e9n incluyo jQuery ya que Parsley depende de \u00e9l.<\/p>\n<pre><code>&lt;link rel=\"stylesheet\" type=\"text\/css\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/twitter-bootstrap\/4.5.3\/css\/bootstrap.min.css\" \/&gt;\n&lt;link rel=\"stylesheet\" type=\"text\/css\" href=\"http:\/\/parsleyjs.org\/src\/parsley.css\" \/&gt;\n&lt;div class=\"container\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;form class=\"form-horizontal\" id=\"signup_form\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"form-group\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label for=\"inputFirstName\" class=\"col-sm-2 control-label\"&gt;First Name&lt;\/label&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"col-sm-4\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"text\" class=\"form-control\" id=\"inputFirstName\" name=\"first_name\" placeholder=\"First Name\" required&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"form-group\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label for=\"inputLastName\" class=\"col-sm-2 control-label\"&gt;Last Name&lt;\/label&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"col-sm-4\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"text\" class=\"form-control\" id=\"inputLastName\" name=\"last_name\" placeholder=\"Last Name\" required&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"form-group\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label for=\"inputEmail3\" class=\"col-sm-2 control-label\"&gt;Email&lt;\/label&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"col-sm-4\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"email\" class=\"form-control\" id=\"inputEmail3\" name=\"email\" placeholder=\"Email\" required&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"form-group\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label class=\"col-sm-2 control-label\"&gt;Gender&lt;\/label&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"col-sm-4\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"gender\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"radio\" name=\"gender\" value=\"male\" required&gt; Male\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"radio\" name=\"gender\" value=\"female\" required&gt; Female\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"form-group\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label class=\"col-sm-2 control-label\"&gt;Skills&lt;\/label&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"col-sm-4\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"skills\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"checkbox\" name=\"skills[]\" value=\"php\" required&gt; PHP\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"checkbox\" name=\"skills[]\" value=\"mysql\" required&gt; MySQL\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"form-group\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div class=\"col-sm-offset-2 col-sm-10\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;button type=\"submit\" class=\"btn btn-primary\"&gt;Sign in&lt;\/button&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;\/form&gt;\n&lt;\/div&gt;\n\u00a0\n&lt;script type=\"text\/javascript\" src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jquery\/3.5.1\/jquery.min.js\"&gt;&lt;\/script&gt;\n&lt;script type=\"text\/javascript\" src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/twitter-bootstrap\/4.5.3\/js\/bootstrap.min.js\"&gt;&lt;\/script&gt;\n&lt;script type=\"text\/javascript\" src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/parsley.js\/2.9.2\/parsley.min.js\"&gt;&lt;\/script&gt;\n&lt;script type=\"text\/javascript\"&gt;\n\u00a0\u00a0\u00a0\u00a0jQuery('#signup_form').parsley();\n&lt;\/script&gt;<\/code><\/pre>\n<p>En el c\u00f3digo anterior, he incluido todos los archivos JS y CSS necesarios usando CDN. Finalmente utilic\u00e9 <code>$('#signup_form').parsley();<\/code>donde #signup_form es el id del formulario. Ahora, cuando presione el bot\u00f3n Enviar directamente, mostrar\u00e1 los errores como se muestra en la captura de pantalla a continuaci\u00f3n.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20309-6081dc1dbb937.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20309-6081dc1dbb937.png\" alt=\"Validaci\u00f3n de formularios HTML con perejil\" ><\/a><\/p>\n<p>Una vez que se corrigen todos los errores, Parsley le permite enviar un formulario que luego toma para el procesamiento del lado del servidor.<\/p>\n<p>Espero que comprenda la validaci\u00f3n de formularios HTML con Parsley. Comparta sus pensamientos y sugerencias en la secci\u00f3n de comentarios a continuaci\u00f3n.<\/p>\n<h3>Art\u00edculos relacionados<\/h3>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/implemente-un-sitio-web-estatico-en-firebase-hosting-de-forma-gratuita\/\" title=\"Implemente un sitio web est\u00e1tico en Firebase Hosting de forma gratuita\">Implemente un sitio web est\u00e1tico en Firebase Hosting de forma gratuita<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/obtenga-la-lista-de-videos-de-youtube-por-palabras-clave-usando-la-api-de-busqueda-de-youtube-y-javascript\/\" title=\"Obtenga la lista de videos de YouTube por palabras clave usando la API de b\u00fasqueda de YouTube y JavaScript\">Obtenga la lista de videos de YouTube por palabras clave usando la API de b\u00fasqueda de YouTube y JavaScript<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/como-conectar-firebase-realtime-database-al-formulario-de-su-sitio-web\/\" title=\"C\u00f3mo conectar Firebase Realtime Database al formulario de su sitio web\">C\u00f3mo conectar Firebase Realtime Database al formulario de su sitio web<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>ParsleyJS es una biblioteca de validaci\u00f3n de formularios JavaScript de c\u00f3digo abierto. En este art\u00edculo, estudiamos c\u00f3mo usar Parsley para la validaci\u00f3n de formularios HTML.<\/p>\n","protected":false},"author":1,"featured_media":21644,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[243],"tags":[849],"class_list":["post-29105","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-javascript-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/29105","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/comments?post=29105"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/29105\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media\/21644"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media?parent=29105"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/categories?post=29105"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/tags?post=29105"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}