Curso Continue Desenvolvendo
HTML Acessível, Lógica de Programação e JavaScript
Como a programação só vinga se praticar, resolva o seguinte:
1. Crie uma página com um formulário para que o usuário possa entrar em contato que possua entradas de texto com seus respectivos labels para:
A. Nome;
B. Sobrenome;
C. E-mail;
D. Telefone;
E. Assunto;
F. Mensagem.
2. Insira um botão para enviar a mensagem;
3. Crie uma área de mensagem com a tag "section" para receber o conteúdo dinâmico na página;
4. Crie um arquivo JavaScript chamado "script.js" para inserir o código e o inclua na página HTML via tag script;
5. Crie a função "validarDados" dentro do arquivo "script.js" e siga a seguinte lógica:
A. Pegue a área de mensagem pelo id e todos os campos do formulário via seletor;
B. Crie um array de erros vazio;
C. Crie um contador de erros começando com 0;
D. Faça um loop pelos campos;
E. Se algum campo estiver vazio:
E.1. Coloque o campo dentro do array de erros;
E.2. Incremente o contador de erros.
F. Fora do loop, se o contador de erros for maior que 0, monte uma mensagem de erro com:
F.1. O título sendo um h2 tendo o atributo tabindex para receber foco via JavaScript e com o texto "Existem X erros no formulário" (X é igual ao "contador de erros");
F.2. Um parágrafo com o texto: "Corrija os campos a seguir:";
F.3. Crie uma lista e faça um loop pelo array de erros e monte cada item de lista dentro do loop, contendo um link com o rotulo: "O campo X não deve ficar vazio" e o link deve apontar para o respectivo campo (X significa o rótulo do campo);
F.4. Finalize a lista fora do loop e depois insira o HTML gerado dentro da área de mensagens.
G. Mas se o contador de erros não for maior que 0, gere o seguinte HTML:
G.1. O título sendo um h2 tendo o atributo tabindex para receber foco via JavaScript e com o texto "Confirmação de envio de dados";
G.2. Um parágrafo com o texto: "Verifique se os dados a seguir foram preenchidos corretamente:";
G.3. Crie uma lista e faça um loop pelo array de campos e monte cada item de lista dentro do loop, contendo um link com o rotulo: "[label do campo]: [valor do campo]" e o link deve apontar para o respectivo campo;
G.4. Finalize a lista fora do loop;
G.5. Insira também no HTML gerado um botão com o atributo "onclick" que chama uma função chamada "enviarMensagem" e o rótulo sendo "Confirmar e enviar os dados preenchidos";
G.6. Depois insira o HTML gerado dentro da área de mensagens.
H. Fora do if-else, dê foco no h2 que deve estar dentro da área de mensagens;
6. Crie a função "enviarMensagem":
A. Dê um alerta dizendo: "Agradecemos pela mensagem!";
B. pegue o formulário e chame sua função "submit()".
7. Depois de criar essas funções, chame a função "validarDados" adicionando um listener:
A. Fora das funções, pegue o formulário via seletor e adicione um ouvinte de evento para o evento "submit" atrelado à uma função anônima;
B. Dentro da função anônima, cancele o comportamento padrão do evento "submit" (que seria enviar o formulário) e chame a função "validarDados". Isso deve ser feito da seguinte maneira:
formulario.addEventListener("submit", function (event) {
event.preventDefault();
validarDados();
});
E não se esqueça: independentemente de qualquer coisa, continue desenvolvendo!