{"id":3253,"date":"2014-12-03T00:02:03","date_gmt":"2014-12-03T02:02:03","guid":{"rendered":"https:\/\/www.kadunew.com\/blog\/?p=3253"},"modified":"2015-04-23T22:04:34","modified_gmt":"2015-04-24T01:04:34","slug":"validacao-de-formulario-com-foundation","status":"publish","type":"post","link":"https:\/\/www.kadunew.com\/blog\/css\/validacao-de-formulario-com-foundation","title":{"rendered":"Valida\u00e7\u00e3o de formul\u00e1rio com Foundation"},"content":{"rendered":"<p>Criar <strong>valida\u00e7\u00e3o de formul\u00e1rio com o Foundation \u00e9 uma tarefa r\u00e1pida<\/strong>.  Os scripts de valida\u00e7\u00e3o do framework ficam no componente chamado abide. Foundation utiliza o atributo <em>required <\/em>da HTML5 para fazer a <a href=\"https:\/\/www.kadunew.com\/blog\/html\/validacao-de-formulario-com-html5\" title=\"Valida\u00e7\u00e3o de Formul\u00e1rio com HTML5\">valida\u00e7\u00e3o em Formul\u00e1rios<\/a>.<\/p>\n<div class=\"obs\">\nN\u00e3o esque\u00e7a de baixar o Foudation e inserir as chamadas necess\u00e1rias em suas p\u00e1ginas:<br \/>\n<a href=\"http:\/\/foundation.zurb.com\/\" title=\"Foundation Site oficial\" target=\"_blank\">Site oficial do Foudation<\/a><br \/>\n<a href=\"https:\/\/www.kadunew.com\/blog\/web-design\/introducao-ao-foundation-framework\" title=\"Introdu\u00e7\u00e3o ao Foudation\">Artigo sobre como iniciar no Foundation<\/a>\n<\/div>\n<p>Primeira coisa que devemos fazer para iniciar o processo de valida\u00e7\u00e3o \u00e9 adicionar o atributo <code>data-abide<\/code> no elemento <code>form<\/code> do nosso formul\u00e1rio que receber\u00e1 as valida\u00e7\u00f5es. Em um segundo momento aplicar o atributo <code>requered<\/code> e se necess\u00e1rio o atributo <code>pattern<\/code>. <strong>Ambas s\u00e3o especifica\u00e7\u00f5es previstas da HTML5<\/strong>, n\u00e3o s\u00e3o componentes do foundation.<\/p>\n<p>O framework utiliza uma API padr\u00e3o da HTML5 para cria as valida\u00e7\u00f5es: atributo <code>requered<\/code>, tipos de <code>input<\/code> e o atributo <code>pattern<\/code>.<\/p>\n<ul>\n<li><strong>Atributo requered<\/strong>: insira o atributo requered aos elementos de formul\u00e1rio que ser\u00e3o de preenchimento obrigat\u00f3rio.<\/li>\n<li><strong>Tipos de input<\/strong>: podemos passar que tipo de dado ser\u00e1 digitado no campo, por exemplo:  <code>type=\"url\"<\/code><\/li>\n<li><strong>Atributo pattern<\/strong>: insira o atributo pattern no elemento para definir restri\u00e7\u00f5es do que o usu\u00e1rio pode ou n\u00e3o digitar, por exemplo: criar um campo obrigat\u00f3rio que aceite apenas n\u00fameros.<\/li>\n<\/ul>\n<pre class=\"brush: xml; title: HTML; notranslate\" title=\"HTML\">\r\n&lt;div class=&quot;large-12 columns&quot;&gt;\r\n  &lt;label for=&quot;nome&quot;&gt;Nome (*)\r\n    &lt;input type=&quot;text&quot; name=&quot;nome&quot; id=&quot;nome&quot; required pattern=&quot;&amp;#91;a-zA-Z&amp;#93;&quot;&gt;\r\n  &lt;\/label&gt;\r\n&lt;\/div&gt;\r\n<\/pre>\n<p>No exemplo acima utilizamos o <code>type=\"text\"<\/code> e tornamos o campo como de preenchimento obrigat\u00f3rio passando uma express\u00e3o regular que diz que o campo aceita apenas letras.<\/p>\n<h2>Mensagens de erro<\/h2>\n<p>O Framework utiliza a classe <em>error<\/em> que \u00e9 destinada a mostrar mensagens de erro ao usu\u00e1rio quando ele tenta enviar um formul\u00e1rio que esteja preenchido de forma errada. O conte\u00fado dessa classe s\u00f3 \u00e9 mostrado quando os campos do formul\u00e1rio cont\u00eam dados inv\u00e1lidos.<\/p>\n<p>Essa classe de erro ser\u00e1 aplicada automaticamente no elemento <code>label<\/code> do HTML da p\u00e1gina. Por padr\u00e3o o elemento \u00e9 estilizado em vermelho.<\/p>\n<p>Podemos tamb\u00e9m, al\u00e9m de destacar o label do campo, mostrar uma mensagem de erro ao usu\u00e1rio. Fizemos isso inserindo um elemento <code>small<\/code> com a classe <em>error<\/em> logo abaixo do elemento que est\u00e1 sendo validado. Veja o exemplo:<\/p>\n<pre class=\"brush: xml; title: HTML; notranslate\" title=\"HTML\">\r\n&lt;form data-abide&gt;\r\n &lt;fieldset&gt;\r\n   &lt;legend&gt;Valida\u00e7\u00e3o&lt;\/legend&gt;\r\n    &lt;div class=&quot;row&quot;&gt;\r\n     &lt;div class=&quot;large-12 columns&quot;&gt;\r\n       &lt;label for=&quot;nome&quot;&gt;Nome (*)\r\n         &lt;input type=&quot;text&quot; name=&quot;nome&quot; id=&quot;nome&quot; pattern=&quot;&amp;#91;a-zA-Z&amp;#93;&quot; required&gt;\r\n       &lt;\/label&gt;\r\n     &lt;\/div&gt;\r\n...\r\n<\/pre>\n<h2>Data-equal \u2013 igual a<\/h2>\n<p>O framework prev\u00ea um atributo <code>data-equal<\/code> para fazer confirma\u00e7\u00e3o de valores, ou seja, <strong>verifica se os valores digitados em dois campos s\u00e3o iguais<\/strong>, como por exemplo: senha e confirma\u00e7\u00e3o de senha. Perceba, no exemplo abaixo, que o segundo campo \u2013 confirma\u00e7\u00e3o de senha \u2013 utiliza o par atributo\/valor <code>data-equalto=\"senha\"<\/code>, onde senha \u00e9 o <code>id<\/code> do campo senha.<\/p>\n<p>Atrav\u00e9s desse atributo\/valor estamos dizendo ao navegador que o que for digitado no campo <strong>confirme senha<\/strong> tem que ser igual ao que foi digitado no campo <strong>senha<\/strong>.<\/p>\n<pre class=\"brush: xml; title: HTML; notranslate\" title=\"HTML\">\r\n&lt;div class=&quot;large-6 columns&quot;&gt;\r\n  &lt;label for=&quot;senha&quot;&gt;Senha (*)\r\n   &lt;input type=&quot;password&quot; required name=&quot;senha&quot; id=&quot;senha&quot;&gt;\r\n  &lt;\/label&gt;\r\n  &lt;small class=&quot;error&quot;&gt;Preencha este campo com sua senha.&lt;\/small&gt;\r\n&lt;\/div&gt;\r\n\r\n&lt;div class=&quot;large-6 columns&quot;&gt;\r\n  &lt;label for=&quot;confirmaSenha&quot;&gt;Confirme senha (*)\r\n    &lt;input type=&quot;password&quot; data-equalto=&quot;senha&quot; required name=&quot;confirmaSenha&quot; id=&quot;confirmaSenha&quot;&gt;\r\n  &lt;\/label&gt;\r\n  &lt;small class=&quot;error&quot;&gt;Senha difere da fornecida no campo anterior.&lt;\/small&gt;\r\n&lt;\/div&gt;\r\n<\/pre>\n<h2>Atributo pattern<\/h2>\n<p>No atributo <code>pattern<\/code> podemos passar um valor em express\u00e3o regular escrita em JavaScript com o objetivo de criar um padr\u00e3o com os dados digitados do usu\u00e1rio. Por exemplo: no atributo <code>pattern<\/code> posso criar um padr\u00e3o de entrada que aceite apenas valores digitados acima de tr\u00eas caracteres, somente letras, sem espa\u00e7o. Ou seja, o formul\u00e1rio n\u00e3o seria enviado com dados fora desse padr\u00e3o defino.<\/p>\n<p>Importante ressaltar que a HTML5 prev\u00ea novos valores para o atributo <code>type<\/code>, tais como: url, email, namber, etc. que j\u00e1 definem um padr\u00e3o de preenchimento dos dados, nesse caso n\u00e3o h\u00e1 a necessidade de criar um padr\u00e3o personalizado com o atributo <code>pattern<\/code>.<\/p>\n<p>O componente <em>foundation.abide.js<\/em> fornece algumas op\u00e7\u00f5es nativas para serem usadas com o atributo <code>pattern<\/code>, ou seja, no lugar de usar uma express\u00e3o regular voc\u00ea pode usar elas para validar os dados digitados. Ent\u00e3o, antes de pensar em criar uma express\u00e3o regular para sua valida\u00e7\u00e3o veja se a mesma j\u00e1 n\u00e3o existe.<\/p>\n<p><strong>Abaixo algumas express\u00e3o j\u00e1 definidas pelo Foundation:<\/strong><\/p>\n<table class=\"tab\">\n<thead>\n<tr>\n<th>Valor<\/th>\n<th>Formato de exemplo<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>alpha<\/td>\n<td>Foundation<\/td>\n<\/tr>\n<tr>\n<td>alpha_numeric<\/td>\n<td>A1Sauce<\/td>\n<\/tr>\n<tr>\n<td>integer<\/td>\n<td>-1, 10, 547<\/td>\n<\/tr>\n<tr>\n<td>number<\/td>\n<td>5,65<\/td>\n<\/tr>\n<tr>\n<td>card<\/td>\n<td>visa, amex, mastercard<\/td>\n<\/tr>\n<tr>\n<td>cvv<\/td>\n<td>384 ou 3284<\/td>\n<\/tr>\n<tr>\n<td>email<\/td>\n<td>foundation@zurb.com<\/td>\n<\/tr>\n<tr>\n<td>url<\/td>\n<td><a href=\"http:\/\/zurb.com\">http:\/\/zurb.com<\/a><\/td>\n<\/tr>\n<tr>\n<td>domain<\/td>\n<td>zurb.com<\/td>\n<\/tr>\n<tr>\n<td>datetime<\/td>\n<td>data e hora (YYYY-MM-DDThh:mm:ssTZD)<\/td>\n<\/tr>\n<tr>\n<td>date<\/td>\n<td>data (YYYY-MM-DD)<\/td>\n<\/tr>\n<tr>\n<td>time<\/td>\n<td>hora (HH:MM:SS)<\/td>\n<\/tr>\n<tr>\n<td>dateISO<\/td>\n<td>Data ISO<\/td>\n<\/tr>\n<tr>\n<td>month_day_year<\/td>\n<td>formato m\u00eas,dia, ano (MM\/DD\/YYYY)<\/td>\n<\/tr>\n<tr>\n<td>color<\/td>\n<td>#FFF ou #FFFFFF<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Personalizando o pattern<\/h2>\n<p>Podemos visualizar as express\u00f5es regulares do framework. Abra o arquivo <em>foundation.abide.js<\/em> que fica em <em>js\\foundation<\/em>. Fique \u00e0 vontade caso deseje alterar as express\u00f5es existentes ou caso queira definir seus pr\u00f3prios padr\u00f5es personalizados. Para isso \u00e9 s\u00f3 e adicionar sua express\u00e3o regular personalizada no <em>arquivo foundation.abide.js<\/em>.<\/p>\n<p>Por exemplo, digamos que eu queira que o usu\u00e1rio digite apenas n\u00fameros menores que quatro em um determinado campo. Poderia criar a express\u00e3o <strong>[0-3-]*$<\/strong> e adicion\u00e1-la no meu arquivo de valida\u00e7\u00e3o.<\/p>\n<div class=\"obs\">\nN\u00e3o esque\u00e7a de incluir na sua p\u00e1gina a chamada do arquivo <em>foundation.abide.js<\/em> que est\u00e1 dentro da pasta <em>foundation<\/em>. Pasta Foundation est\u00e1 no pacote de download do framework.\n<\/div>\n<p>Abrindo o arquivo <em>foundation.abide.js<\/em> logo no seu in\u00edcio voc\u00ea j\u00e1 encontra as express\u00f5es de valida\u00e7\u00e3o padr\u00e3o do framework. Repare que adicionei uma express\u00e3o chamada de <em>teste<\/em>. Agora no c\u00f3digo HTML no lugar de passar uma express\u00e3o regular em JS passarei o nome da express\u00e3o que eu criei:<\/p>\n<p>Fun\u00e7\u00e3o <em>teste <\/em>inserida no arquivo <em>foundation.abide.js<\/em>:<\/p>\n<pre class=\"brush: jscript; title: Arquivo language=foundation.abide.js; notranslate\" title=\"Arquivo language=foundation.abide.js\">\r\n;(function ($, window, document, undefined) {\r\n  'use strict';\r\n  Foundation.libs.abide = {\r\n    name : 'abide',\r\n    version : '5.4.6',\r\n    settings : {\r\n      live_validate : true,\r\n      focus_on_invalid : true,\r\n      error_labels: true, \/\/ labels with a for=\"inputId\" will recieve an `error` class\r\n      timeout : 1000,\r\n      patterns : {\r\n        teste:\/^&#x5B;0-3-]*$\/,\r\n        dashes_only: \/^&#x5B;0-9-]*$\/,\r\n...\r\n<\/pre>\n<p>Chamando a express\u00e3o regular personalizada:<\/p>\n<pre class=\"brush: xml; title: HTML; notranslate\" title=\"HTML\">\r\n&lt;input type=&quot;text&quot; name=&quot;nome&quot; id=&quot;nome&quot; pattern=&quot;teste&quot; required&gt; \r\n<\/pre>\n<p>Criei uma p\u00e1gina de exemplo para demonstrar a valida\u00e7\u00e3o utilizada nesse artigo:<\/p>\n<p><a href=\"https:\/\/www.kadunew.com\/blog\/exemplos\/foundation\/formularios-validacao.html\" class=\"btn-link\" target=\"_blank\">P\u00e1gina de exemplo<\/a><\/p>\n<p>Siga-me no Twitter: <a href=\"http:\/\/twitter.com\/kadunew\" rel=\"nofollow\">@kadunew<\/a> ou assine nosso <a href=\"https:\/\/www.kadunew.com\/blog\/feed\">Feed<\/a> e fique por dentro de todas atualiza\u00e7\u00f5es aqui do blog.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Criar valida\u00e7\u00e3o de formul\u00e1rio com o Foundation \u00e9 uma tarefa r\u00e1pida. Os scripts de valida\u00e7\u00e3o do framework ficam no componente chamado abide. Foundation utiliza o atributo required da HTML5 para fazer a valida\u00e7\u00e3o em Formul\u00e1rios. N\u00e3o esque\u00e7a de baixar o Foudation e inserir as chamadas necess\u00e1rias em suas p\u00e1ginas: Site oficial do Foudation Artigo sobre [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-3253","post","type-post","status-publish","format-standard","hentry","category-css"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Valida\u00e7\u00e3o de formul\u00e1rio com Foundation<\/title>\n<meta name=\"description\" content=\"Valida\u00e7\u00e3o de formul\u00e1rio utilizando o Foudantion. Mostre mensagens de erro, escolha o tipo de informa\u00e7\u00e3o que deseja receber. Tudo utilizando Foundation e HTML5.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.kadunew.com\/blog\/css\/validacao-de-formulario-com-foundation\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Valida\u00e7\u00e3o de formul\u00e1rio com Foundation\" \/>\n<meta property=\"og:description\" content=\"Valida\u00e7\u00e3o de formul\u00e1rio utilizando o Foudantion. Mostre mensagens de erro, escolha o tipo de informa\u00e7\u00e3o que deseja receber. Tudo utilizando Foundation e HTML5.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.kadunew.com\/blog\/css\/validacao-de-formulario-com-foundation\" \/>\n<meta property=\"og:site_name\" content=\"KADUNEW\" \/>\n<meta property=\"article:published_time\" content=\"2014-12-03T02:02:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2015-04-24T01:04:34+00:00\" \/>\n<meta name=\"author\" content=\"Kadu Oliveira\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kadu Oliveira\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.kadunew.com\/blog\/css\/validacao-de-formulario-com-foundation\",\"url\":\"https:\/\/www.kadunew.com\/blog\/css\/validacao-de-formulario-com-foundation\",\"name\":\"Valida\u00e7\u00e3o de formul\u00e1rio com Foundation\",\"isPartOf\":{\"@id\":\"https:\/\/www.kadunew.com\/blog\/#website\"},\"datePublished\":\"2014-12-03T02:02:03+00:00\",\"dateModified\":\"2015-04-24T01:04:34+00:00\",\"author\":{\"@id\":\"https:\/\/www.kadunew.com\/blog\/#\/schema\/person\/07b2297c4825efbd1e9f2a1018926b05\"},\"description\":\"Valida\u00e7\u00e3o de formul\u00e1rio utilizando o Foudantion. Mostre mensagens de erro, escolha o tipo de informa\u00e7\u00e3o que deseja receber. Tudo utilizando Foundation e HTML5.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.kadunew.com\/blog\/css\/validacao-de-formulario-com-foundation#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.kadunew.com\/blog\/css\/validacao-de-formulario-com-foundation\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.kadunew.com\/blog\/css\/validacao-de-formulario-com-foundation#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.kadunew.com\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CSS\",\"item\":\"https:\/\/www.kadunew.com\/blog\/category\/css\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Valida\u00e7\u00e3o de formul\u00e1rio com Foundation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.kadunew.com\/blog\/#website\",\"url\":\"https:\/\/www.kadunew.com\/blog\/\",\"name\":\"KADUNEW\",\"description\":\"Artigos sobre Front-End e Programa\u00e7\u00e3o web\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.kadunew.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.kadunew.com\/blog\/#\/schema\/person\/07b2297c4825efbd1e9f2a1018926b05\",\"name\":\"Kadu Oliveira\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.kadunew.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/780660fded589936b30467c54c99d51a?s=96&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/780660fded589936b30467c54c99d51a?s=96&r=g\",\"caption\":\"Kadu Oliveira\"},\"sameAs\":[\"https:\/\/www.kadunew.com\/blog\"],\"url\":\"https:\/\/www.kadunew.com\/blog\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Valida\u00e7\u00e3o de formul\u00e1rio com Foundation","description":"Valida\u00e7\u00e3o de formul\u00e1rio utilizando o Foudantion. Mostre mensagens de erro, escolha o tipo de informa\u00e7\u00e3o que deseja receber. Tudo utilizando Foundation e HTML5.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.kadunew.com\/blog\/css\/validacao-de-formulario-com-foundation","og_locale":"pt_BR","og_type":"article","og_title":"Valida\u00e7\u00e3o de formul\u00e1rio com Foundation","og_description":"Valida\u00e7\u00e3o de formul\u00e1rio utilizando o Foudantion. Mostre mensagens de erro, escolha o tipo de informa\u00e7\u00e3o que deseja receber. Tudo utilizando Foundation e HTML5.","og_url":"https:\/\/www.kadunew.com\/blog\/css\/validacao-de-formulario-com-foundation","og_site_name":"KADUNEW","article_published_time":"2014-12-03T02:02:03+00:00","article_modified_time":"2015-04-24T01:04:34+00:00","author":"Kadu Oliveira","twitter_misc":{"Escrito por":"Kadu Oliveira","Est. tempo de leitura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.kadunew.com\/blog\/css\/validacao-de-formulario-com-foundation","url":"https:\/\/www.kadunew.com\/blog\/css\/validacao-de-formulario-com-foundation","name":"Valida\u00e7\u00e3o de formul\u00e1rio com Foundation","isPartOf":{"@id":"https:\/\/www.kadunew.com\/blog\/#website"},"datePublished":"2014-12-03T02:02:03+00:00","dateModified":"2015-04-24T01:04:34+00:00","author":{"@id":"https:\/\/www.kadunew.com\/blog\/#\/schema\/person\/07b2297c4825efbd1e9f2a1018926b05"},"description":"Valida\u00e7\u00e3o de formul\u00e1rio utilizando o Foudantion. Mostre mensagens de erro, escolha o tipo de informa\u00e7\u00e3o que deseja receber. Tudo utilizando Foundation e HTML5.","breadcrumb":{"@id":"https:\/\/www.kadunew.com\/blog\/css\/validacao-de-formulario-com-foundation#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.kadunew.com\/blog\/css\/validacao-de-formulario-com-foundation"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.kadunew.com\/blog\/css\/validacao-de-formulario-com-foundation#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.kadunew.com\/blog"},{"@type":"ListItem","position":2,"name":"CSS","item":"https:\/\/www.kadunew.com\/blog\/category\/css"},{"@type":"ListItem","position":3,"name":"Valida\u00e7\u00e3o de formul\u00e1rio com Foundation"}]},{"@type":"WebSite","@id":"https:\/\/www.kadunew.com\/blog\/#website","url":"https:\/\/www.kadunew.com\/blog\/","name":"KADUNEW","description":"Artigos sobre Front-End e Programa\u00e7\u00e3o web","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.kadunew.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/www.kadunew.com\/blog\/#\/schema\/person\/07b2297c4825efbd1e9f2a1018926b05","name":"Kadu Oliveira","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.kadunew.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/780660fded589936b30467c54c99d51a?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/780660fded589936b30467c54c99d51a?s=96&r=g","caption":"Kadu Oliveira"},"sameAs":["https:\/\/www.kadunew.com\/blog"],"url":"https:\/\/www.kadunew.com\/blog\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/www.kadunew.com\/blog\/wp-json\/wp\/v2\/posts\/3253"}],"collection":[{"href":"https:\/\/www.kadunew.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kadunew.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kadunew.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kadunew.com\/blog\/wp-json\/wp\/v2\/comments?post=3253"}],"version-history":[{"count":17,"href":"https:\/\/www.kadunew.com\/blog\/wp-json\/wp\/v2\/posts\/3253\/revisions"}],"predecessor-version":[{"id":3743,"href":"https:\/\/www.kadunew.com\/blog\/wp-json\/wp\/v2\/posts\/3253\/revisions\/3743"}],"wp:attachment":[{"href":"https:\/\/www.kadunew.com\/blog\/wp-json\/wp\/v2\/media?parent=3253"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kadunew.com\/blog\/wp-json\/wp\/v2\/categories?post=3253"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kadunew.com\/blog\/wp-json\/wp\/v2\/tags?post=3253"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}