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

Página atualizando mesmo com event.preventDefault()

Problema

event.preventDefault() não esta impedindo o browser de atualizar a página ao clicar no meu botão incluir.

Aqui vai o HTML do botão Incluir.:

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

Inserindo os scripts antes da tag body.:

    <script src="js/app/models/Negociacao.js"></script>
    <script src="js/app/controllers/NegociacaoController.js"></script>
    <script>
        let negociacaoController = new NegociacaoController();
    </script>

E por ultimo, meu arquivo NegociacaoController.js

class NegociacaoController {

  constructor() {

    let $ = document.querySelector.bind(document);

    this._inputData = $('#data');
    this._inputQuantidade =  $('#quantidade');
    this._inputValor = $('#valor');
  }

  adiciona(event) {
    event.preventDefault();

    console.log(this._inputData.value);
    console.log(this._inputQuantidade.value);
    console.log(this._inputValor.value);

  }
}

Já olhei meu código de ponta cabeça e não consegui achar o que está errado. Abraço, aguardo um retorno! Laércio.

4 respostas

Deve haver um erro no seu código que faz seu script que faz preventDefault() não ser executado e você não consegue ver a mensagem de erro porque não esta preservando o log no seu console, dai nunca conseguirá saber o erro.

solução!

Olha, achei o erro. Você colocou o evento onsubmit no botão, não pode. Em JavaScript, um botão não possui o evento onsubmit, quem possui é o formulário. O evento onsubmit só faz sentido no form.

    <form class="form" onsubmit="negociacaoController.adiciona(event)">

Sucesso e bom estudo, meu aluno!

Olá Professor, Flavio Henrique!

Muito obrigado pela pronta resposta, fiz as devidas alterações e agora meu código está funcionando perfeitamente.

Abraço !

Excelente! Agora é continuar com os estudos. Há mais dois cursos de JS avançados pela frente!