As formas (ou forms, em inglês) em navegadores da web são elementos fundamentais para a interação do usuário com os sites. Elas são usadas para coletar informações de entrada dos usuários, como texto, seleções, botões de rádio e caixas de seleção. O HTML fornece uma série de elementos específicos para criar formulários, como
“Mais Informações”

Claro, vamos explorar mais detalhadamente algumas das técnicas e conceitos relacionados ao trabalho com formulários em JavaScript.
-
Acesso aos Elementos do Formulário:
Além dos métodos mencionados anteriormente (getElementById(),querySelector(),querySelectorAll()), também é possível acessar os elementos do formulário através da propriedadeelementsdo objetoform. Essa propriedade retorna uma coleção HTMLFormControlsCollection contendo todos os elementos de entrada do formulário, indexados por seus atributosnameou posição na ordem em que aparecem no código HTML.Exemplo:
javascript// Acessando elementos do formulário pela propriedade 'elements' var formulario = document.getElementById('formulario'); var elementos = formulario.elements; var inputNome = elementos['nome']; -
Manipulação de Dados do Formulário:
Além das propriedadesvalue,checkedeselected, existem outras propriedades e métodos úteis para manipular os dados do formulário:defaultValue: Retorna o valor padrão de um elemento de entrada do formulário.reset(): Reseta os valores de todos os elementos do formulário para seus valores padrão.setCustomValidity(): Define uma mensagem de validação personalizada para um elemento de formulário.
Exemplo:
javascript// Resetando os valores do formulário formulario.reset(); // Definindo uma mensagem de validação personalizada inputNome.setCustomValidity('Por favor, insira seu nome completo.'); -
Eventos de Formulário:
Além dos eventos mencionados anteriormente, comosubmit,changeeclick, existem outros eventos específicos de formulário que podem ser úteis:input: Disparado quando o valor de um elemento de entrada do formulário é alterado pelo usuário.focus: Disparado quando um elemento de entrada do formulário recebe foco.blur: Disparado quando um elemento de entrada do formulário perde o foco.
Exemplo:
javascript// Adicionando um evento de entrada a um campo de texto inputNome.addEventListener('input', function(event) { // Realiza alguma ação quando o valor do campo é alterado }); -
Validação de Formulário:
Além das APIs de validação HTML5, é possível realizar validações personalizadas em JavaScript. Isso pode ser feito associando funções de validação aos eventos de formulário ou utilizando a propriedadepatternpara definir expressões regulares para validação de campos de texto.Exemplo:
html<input type="text" pattern="[A-Za-z]+" title="Apenas letras são permitidas">javascript// Validando um campo de texto com uma expressão regular inputNome.addEventListener('input', function(event) { if (!/^[A-Za-z]+$/.test(inputNome.value)) { inputNome.setCustomValidity('Apenas letras são permitidas.'); } else { inputNome.setCustomValidity(''); } }); -
Envio de Dados do Formulário:
Além do métodosubmit()e das solicitações AJAX, é possível utilizar a API Fetch para enviar dados do formulário de forma mais moderna e assíncrona. A API Fetch fornece uma interface JavaScript para acessar e manipular partes do pipeline HTTP, como solicitações e respostas.Exemplo:
javascript// Enviando dados do formulário via Fetch API fetch('url-do-servidor', { method: 'POST', body: new FormData(formulario) }) .then(response => response.json()) .then(data => { console.log('Resposta do servidor:', data); }) .catch(error => { console.error('Erro ao enviar dados:', error); });
Ao utilizar JavaScript para trabalhar com formulários, é importante considerar a acessibilidade, garantindo que os usuários com necessidades especiais possam interagir adequadamente com os formulários. Isso inclui fornecer rótulos adequados para os campos de entrada, mensagens de erro claras e feedback visual adequado. Além disso, a manutenção de um código limpo e organizado contribui para uma melhor experiência de desenvolvimento e facilita futuras atualizações e modificações nos formulários.

