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

Como eu limpo os campos do formulário ao submete lo a um evento submit ?

Olá, Boa noite!

Estou tentando implementar o método que limpa os campos do formulário da view, mas não estou conseguindo. Alguém pode me ajudar ?

class NegociacaoController{

    constructor(){
        let $ = document.querySelector.bind(document); //Criando uma especie de cache para evitar percorrer o Dom muitas vezes 
        this._inputData = $('#data');
        this._inputQuantidade = $('#quantidade'); 
        this._inputValor = $('#valor');
        this._form = $('.form');
    }
    // Método que adiciona uma negociacao
    adiciona(event){
        event.preventDefault();

        let data = new Date(...
            this._inputData.split('-')
            .map(function(item, indice){
                return item % indice - 1;
            })
        );
        this._inputQuantidade.value;
        this._inputValor.value;
    }
    limpaFormulario(){
       this._form.reset();
       this._inputData.focus();
    }
}

Tentei dessa forma também:

    limpaFormulario(){
         data.focus();
         this._inputQuantidade.value = " ";
     this._inputValor.value = " ";
    }

Na chamada, tentei colocar um evento de click no botão de incluir/form, mas também não deu certo. :(

 <button class="btn btn-primary" type="submit" negociacaoController.limpaFormulario()>Incluir</button>

O que eu poderia estar fazendo nesse caso ?

Grato desde já!

3 respostas

Fala aí Rene, beleza?

Cara, eu não achei a chamada da função limpaFormulario dentro do seu adiciona, será que o problema não é esse?

Espero ter ajudado.

Fala aí Matheus, beleza ?

Então mano método limpaFormulario tem que estar dentro do método adiciona pra que os dois seja executados ao mesmo tempo ?

solução!

Acho que depois que adiciona, você limpa o form.

class NegociacaoController{
    adiciona(event){
        event.preventDefault();

        let data = new Date(...
            this._inputData.split('-')
            .map(function(item, indice){
                return item % indice - 1;
            })
        );
        this._inputQuantidade.value;
        this._inputValor.value;
        // depois de adicionar você limpa
        this.limpaFormulario();
    }
    limpaFormulario(){
       this._form.reset();
       this._inputData.focus();
    }
}

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software