{"id":283,"date":"2019-11-04T18:07:44","date_gmt":"2019-11-04T20:07:44","guid":{"rendered":"http:\/\/xaxowareti.com.br\/?p=283"},"modified":"2019-11-04T18:09:27","modified_gmt":"2019-11-04T20:09:27","slug":"validando-formularios-apenas-com-html5","status":"publish","type":"post","link":"https:\/\/xaxowareti.com.br\/?p=283","title":{"rendered":"Validando formul\u00e1rios apenas com html5"},"content":{"rendered":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"http:\/\/wbruno.com.br\/wp-content\/uploads\/2014\/02\/html5.jpg\" alt=\"html5\" class=\"wp-image-3262\"\/><\/figure><\/div>\n\n\n\n<p>Validar formul\u00e1rios \u00e9 chato, tedioso e trabalhoso. Felizmente algu\u00e9m olhou isso e resolveu incluir dentro da especifica\u00e7\u00e3o do html, alguns atributos e valores novos muito interessantes.<\/p>\n\n\n\n<p>Se usarmos corretamente, e estudarmos Express\u00f5es Regulares, \u00e9 poss\u00edvel fazer uma valida\u00e7\u00e3o simples sem escrever nenhuma linha de javascript. Vou deixar abaixo alguns snippets da tag input, utilizando o type correto (veja aqui todos os&nbsp;<a href=\"http:\/\/html5doctor.com\/html5-forms-input-types\/\">types novos da html5<\/a>) e um uso do atributo&nbsp;<strong>pattern<\/strong>&nbsp;para os qual eu escrevi algunms ERs.<\/p>\n\n\n\n<p><strong>Apenas letras<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;input type=\"text\" required=\"required\" name=\"text\" pattern=\"[a-z\\s]+$\" \/&gt;<\/pre>\n\n\n\n<p><strong>Apenas n\u00fameros<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;input type=\"text\" required=\"required\" name=\"numbers\" pattern=\"[0-9]+$\" \/&gt;<\/pre>\n\n\n\n<p><strong>Data<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;input type=\"date\" required=\"required\" maxlength=\"10\" name=\"date\" pattern=\"[0-9]{2}\\\/[0-9]{2}\\\/[0-9]{4}$\" min=\"2012-01-01\" max=\"2014-02-18\" \/&gt;<\/pre>\n\n\n\n<p><strong>Hora<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;input type=\"time\" required=\"required\" maxlength=\"8\" name=\"hour\" pattern=\"[0-9]{2}:[0-9]{2} [0-9]{2}$\" \/&gt;<\/pre>\n\n\n\n<p><strong>Campos gen\u00e9ricos de texto<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;input type=\"text\" required=\"required\" name=\"name\" \/&gt;<\/pre>\n\n\n\n<p><strong>Telefone<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;input type=\"tel\" required=\"required\" maxlength=\"15\" name=\"phone\" pattern=\"\\([0-9]{2}\\) [0-9]{4,6}-[0-9]{3,4}$\" \/&gt;<\/pre>\n\n\n\n<p><strong>Email<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;input type=\"email\" required=\"required\" class=\"input-text\" name=\"email\" pattern=\"[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$\" \/&gt;<\/pre>\n\n\n\n<p><strong>Moeda<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;input type=\"tel\" required=\"required\" maxlength=\"15\" name=\"valor\" pattern=\"([0-9]{1,3}\\.)?[0-9]{1,3},[0-9]{2}$\" \/&gt;\n<\/pre>\n\n\n\n<p>Utilizei o type=\u201dtel\u201d, pq em celulares renderiza melhor o teclado.<\/p>\n\n\n\n<p><strong>Input file<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;input type=\"file\" name=\"file\" accept=\"image\/*\" required=\"required\" \/&gt;<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"placeholder\">placeholder<\/h2>\n\n\n\n<p>Lembre-se de usar o placeholder nos seus campos em que voc\u00ea precise&nbsp;<em>\u201cdar alguma dica\u201d<\/em>&nbsp;para o usu\u00e1rio de como ele deve preench\u00ea-lo<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"estilizar-os-inputs\">Estilizar os inputs<\/h2>\n\n\n\n<p>Fa\u00e7a testes utilizando as pseudo classes<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">input:required:invalid {}\ninput:required:valid {}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"personalizar-as-mensagens-de-erro\">Personalizar as mensagens de erro<\/h2>\n\n\n\n<p>Encontrei este artigo bem completo e interessante:&nbsp;<a href=\"http:\/\/blog.popupdesign.com.br\/validando-formularios-like-a-boss-com-html5\/\">Validando formul\u00e1rios like a boss com HTML5<\/a>. Onde \u00e9 mostrado o atributo:&nbsp;required x-moz-errormessage=\u201dOps. N\u00e3o esque\u00e7a de preencher este campo.\u201d, logicamente exclusivo do Firefox.<\/p>\n\n\n\n<p>E para webkit, o css:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">::-webkit-validation-bubble {\/*Insira aqui seu CSS.*\/}\n::-webkit-validation-bubble-message {}\n::-webkit-validation-bubble-arrow {}\n::-webkit-validation-bubble-arrow-clipper {}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"thats-all-folks\">That\u2019s all folks!<\/h2>\n","protected":false},"excerpt":{"rendered":"<p>Validar formul\u00e1rios \u00e9 chato, tedioso e trabalhoso. Felizmente algu\u00e9m olhou isso e resolveu incluir dentro da especifica\u00e7\u00e3o do html, alguns atributos e valores novos muito interessantes. Se usarmos corretamente, e estudarmos Express\u00f5es Regulares, \u00e9 poss\u00edvel fazer uma valida\u00e7\u00e3o simples sem escrever nenhuma linha de javascript. Vou deixar abaixo alguns snippets da tag input, utilizando o [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":277,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-283","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sem-categoria"],"_links":{"self":[{"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=\/wp\/v2\/posts\/283","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=283"}],"version-history":[{"count":1,"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=\/wp\/v2\/posts\/283\/revisions"}],"predecessor-version":[{"id":284,"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=\/wp\/v2\/posts\/283\/revisions\/284"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=\/wp\/v2\/media\/277"}],"wp:attachment":[{"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=283"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=283"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xaxowareti.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}