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

O que o HTML está passando para o JS?

No código:

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

O que exatamente estamos passando como parâmetro no método "adiciona"? Aquele "event" leva o quê para o JS?

2 respostas

Oi Bernardo,

Quando o formulário for enviado, o evento de submit vai ser disparado. Quando ele for disparado, o código negociacaoController.adiciona(event) vai ser executado. Sempre que um código JS é executado por causa de um evento, a variável event estará disponível pra gente usar. Ela armazena várias informações sobre o evento que está sendo disparado. Se quiser acessar qual foi o elemento/tag na qual o evento foi disparado é possível acessar event.target. Se quiser saber o momento em que foi disparado o evento, event.timeStamp. Tem bastante coisa dentro desse event! Se quiser ver mais coisas, aqui um link bom pra dar uma olhada: https://developer.mozilla.org/en-US/docs/Web/API/Event

solução!

EDIT: Enquanto eu digitava a resposta, apareceu outra :)

Olá Bernardo, td bem?

No JavaScript existem os event handlers, que são aqueles iniciados com a palavra on (onSubmit, onClick, onBlur, onChange, etc.), que no HTML se digita em letras minúsculas. E para esses event handlers existe essa palavra event, que é na verdade um objeto que contém várias informações sobre o evento, no nosso caso, o evento de submit.

Se der um log nesse objeto dentro do controller, irá ver que nele existem coisas como o tipo de evento (submit) e o target (form.form), além do método preventDefault que é do nosso interesse.

Então saiba que sempre que um evento desse tipo ocorre, o objeto event é criado automaticamente. E para funcionar, precisa usar a palavra event mesmo, se colocássemos banana ou qualquer outra coisa no lugar não daria certo.