Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

[Dúvida] O meu código para limpar formulário não funciona

Repliquei o código para limpar o formulário, mas o mesmo não está funcionando em minha aplicação. Já revisei várias vezes, tentei colocar em diferentes posições no código e mesmo assim ele ainda não faz a limpeza do value do formulário.

Segue o trecho onde aplico o código:

Aqui, estou atribuindo o valor dos eventos em variáveis

    const nome = evento.target.elements['nome'].value;
    const quantidade = evento.target.elements['quantidade'].value;

Logo após isso, fiz a chamada da função que cria os elementos HTML

    criaElemento(nome, quantidade);

Por fim, limpei os campos do Form com esta função, que em teoria deveria ser algo simples, mas continuo tendo os valores no formulário após clicar em "Adicionar"

    nome.value = "";
    quantidade.value = "";
3 respostas
solução!

Olá Mateus, tudo bem?

Pelo que entendi, você está com dificuldades em limpar os campos do formulário após clicar em "Adicionar".

Pelo trecho de código que você compartilhou, parece que o problema está na forma como você está tentando limpar os campos do formulário. Quando você usa const nome = evento.target.elements['nome'].value; e const quantidade = evento.target.elements['quantidade'].value;, você está atribuindo os valores dos campos do formulário às variáveis nome e quantidade. No entanto, quando você tenta limpar os campos do formulário com nome.value = ""; e quantidade.value = "";, você está tentando acessar a propriedade value de uma string, o que não é possível.

Para limpar os campos do formulário, você precisa acessar diretamente os elementos do formulário, e não as variáveis que você criou para armazenar os valores desses campos. Tente substituir as linhas nome.value = ""; e quantidade.value = ""; por algo como:

evento.target.elements['nome'].value = "";
evento.target.elements['quantidade'].value = "";

Isso deve funcionar para limpar os campos do formulário.

Espero ter ajudado, e caso isso não funcione, peço que compartilhe o código completo para que eu possa analisar ele e tentar lhe ajudar de uma forma mais assertiva.

Abraços e bons estudos!

Funcionou! Muito obrigado, Renan!

Você armazenou o valor na variável, utilizando o .value no final e quando tu chama ele pra limpar o campo, também estás chamando pedindo o valor, seria facilmente resolvido se você armazenar apenas o evento e depois chamar pedindo o valor.

const nome = evento.target.elements['nome'];
const quantidade = evento.target.elements['quantidade'];

nome.value = "";
quantidade.value = "";

Nesse caso você continuaria tendo a opção de reutilizar o Nome e a Quantidade sem precisar repetir aquele bloco de código