< Return to Video

Processamento de formulários com eventos (Versão Vídeo)

  • 0:01 - 0:05
    Um formulário é uma maneira de uma webpage
    enviar informações para um servidor.
  • 0:05 - 0:10
    Nós não deixamos a webpages aqui no
    Khan Academy interagir com os servers
  • 0:10 - 0:11
    por motivos de segurança.
  • 0:11 - 0:14
    Então nós não ensinamos formulários aqui.
  • 0:14 - 0:17
    Mas, agora que você está aprendendo
    JavaScript para manipular webpages,
  • 0:17 - 0:21
    vou mostrar como usar JavaScript para
    processar elementos de formulários
  • 0:21 - 0:23
    em vez de ter que enviá-los
    para um servidor.
  • 0:23 - 0:28
    Eu configurei elementos de formulário
    aqui para descobrir o nome do usuário,
  • 0:28 - 0:30
    e a sua linguagem.
  • 0:30 - 0:34
    E eu quero que a webpage diga "olá"
    para o usuário em sua linguagem
  • 0:34 - 0:37
    uma vez que ele aperte nesse botão.
  • 0:37 - 0:41
    O primeiro passo é guardar o
    elemento botão em uma variável.
  • 0:41 - 0:49
    Então nós iremos dizer:
    `document.getElementById("button")`.
  • 0:49 - 0:53
    O próximo passar é definir
    a função de listner do evento.
  • 0:53 - 0:58
    `var onButtonClick = function() {`
  • 0:58 - 1:04
    e então, dentro daqui, nós iremos apenas
    começar anexando uma mensagem.
  • 1:04 - 1:08
    Então,
    `document.getElementById("message")`,
  • 1:08 - 1:11
    nós temos uma pequenina
    mensagem legal "div".
  • 1:11 - 1:21
    E nós iremos apenas: `textContent +=
    "Você me clicou! Muito obrigado!"`
  • 1:21 - 1:23
    Um "div" muito grato!
  • 1:23 - 1:29
    Finalmente, terceiro passo, nós iremos
    adicionar o evento listner para o botão
  • 1:29 - 1:32
    para que isto possa chamar
    a função quando for clicado.
  • 1:32 - 1:36
    então,`("click", onButtonClick)`.
  • 1:36 - 1:43
    Pause o tutorial agora, e veja por conta
    própria, que ele funciona como o esperado.
  • 1:43 - 1:47
    Agora, vamos fazê-lo dizer alguma coisa
    com base no que há no formulário.
  • 1:47 - 1:53
    Precisamos descobrir como conseguir o que
    o usuário digitou no campo "name".
  • 1:53 - 1:56
    Vamos fazer uma variável para isso.
  • 1:56 - 2:05
    Então,
    `var name = document.getElementById`,
  • 2:05 - 2:07
    desde que isso possui uma ID,
  • 2:07 - 2:11
    então nós colocamos ela lá.
  • 2:11 - 2:17
    Vamos fazer um novo "string" para
    as saudações, e unir o nosso disso,
  • 2:17 - 2:23
    então `var greeting = "Heyaz"`,
    essa é minha saudação favorita,
  • 2:23 - 2:24
    ` + name`.
  • 2:24 - 2:30
    Okay, então nós temos uma "string", e mais
    o que estiver armazenado na variável.
  • 2:30 - 2:39
    E agora, este aqui, o conteúdo do texto,
    realmente deve ser `greeting` .
  • 2:39 - 2:42
    Vamos ver, isso parece certo
  • 2:42 - 2:45
    encontramos a entrada do nome,
    fizemos uma "string" de saudações,
  • 2:45 - 2:48
    e nós anexamos isso a um "div".
  • 2:48 - 2:53
    Pause o tutorial, e veja
    se isso funcionou.
  • 2:53 - 2:56
    Não é bem assim , né?
  • 2:56 - 3:02
    Você viu "Heyaz [object Object]", ou
    "Heyaz object Element"?
  • 3:02 - 3:05
    Assumir que o seu "nome" não é um Objeto
  • 3:05 - 3:08
    e sem ofensa , se for,
    isso é um ótimo nome--
  • 3:08 - 3:11
    isso significa que algo está errado.
  • 3:11 - 3:14
    Nós esperamos ver o que você digitou.
  • 3:14 - 3:16
    Mas nós vemos "object".
  • 3:16 - 3:21
    Isso significa que a variável "name" está
    apontando para um objeto,
  • 3:21 - 3:24
    e não a "string" que nós esperávamos
    que estivesse apontando.
  • 3:24 - 3:27
    Talvez você já tenha
    descoberto o problema.
  • 3:27 - 3:32
    Nós armazenamos todo o elemento de
    objeto, dentro da variável "name".
  • 3:32 - 3:35
    E o elemento de um objeto
    é um grande objeto
  • 3:35 - 3:37
    com muita informação sobre o elemento:
  • 3:37 - 3:40
    todos os seus atributos,
    todos os seus métodos.
  • 3:40 - 3:43
    Para encontrar o que o usuário digitou,
    nós temos que acessar uma propriedade
  • 3:43 - 3:46
    particular dos elementos: o valor.
  • 3:46 - 3:52
    E eu vou digitar `.value`,
    que deve concertar isso.
  • 3:52 - 3:56
    Pause o tutorial, e tente novamente.
  • 3:56 - 3:58
    Funcionou, certo?
  • 3:58 - 4:02
    Agora, esse é um erro comum, então
    preste atenção em relação a isso.
  • 4:02 - 4:05
    Eu quero lhe mostrar mais um erro comum.
  • 4:05 - 4:14
    Eu vou pegar essa linha daqui,
    e mover para fora da função.
  • 4:14 - 4:23
    Agora, pause o tutorial, digite a entrada
    e pressione o botão.
  • 4:23 - 4:26
    Se ele quebrou da maneira que deveria,
    então você deve ter visto,
  • 4:26 - 4:28
    uma "string" vazia para o seu nome.
  • 4:28 - 4:30
    Descobriu o porquê?
  • 4:30 - 4:34
    Você deve pensar com cuidado sobre
    cada linha que é executada.
  • 4:34 - 4:37
    No código atual, o navegador
    carrega a página,
  • 4:37 - 4:40
    e executa o JavaScript linha por linha.
  • 4:40 - 4:43
    Primeiro, guarda o
    elemento botão na variável.
  • 4:43 - 4:47
    Em seguida, armazena o valor do
    o elemento de entrada na variável.
  • 4:47 - 4:50
    Porém, armazena o valor no
    tempo que a página carrega,
  • 4:50 - 4:52
    o qual estará vazio.
  • 4:52 - 4:56
    Em seguida, ele define uma função
    e atribui o evento listner (que ouve).
  • 4:56 - 5:00
    Quando o listner é chamado, o "name"
    ainda está a mesma "string"
  • 5:00 - 5:03
    que estava quando a página foi carregada.
  • 5:03 - 5:06
    Assim, o listner nunca descobre
    a última coisa que o usuário digitou.
  • 5:06 - 5:09
    E por isso essa linha de código
  • 5:09 - 5:13
    deve ficar no interior dessa
    função evento listner,
  • 5:13 - 5:19
    então ele encontra o valor no tempo
    em que o evento ocorre.
  • 5:19 - 5:22
    Vamos adicionar um código para
    olhar o valor da linguagem agora,
  • 5:22 - 5:24
    para ter certeza que você está
    realmente entendendo isso.
  • 5:24 - 5:30
    Dentro do listner, eu irei armazenar
    a linguagem dentro da variável "lang".
  • 5:32 - 5:35
    Ugh, olhe essa indentação, está horrível.
  • 5:35 - 5:37
    Vamos alinhar isso.
  • 5:37 - 5:39
    Okay, então...
  • 5:39 - 5:41
    [digitando]
  • 5:47 - 5:51
    E você irá notar que eu estou nomeando
    minhas variáveis iguais as minhas IDs,
  • 5:51 - 5:55
    mais isso é apenas o que eu estou fazendo,
    você não precisar fazer o mesmo.
  • 5:55 - 6:00
    Agora, quero exibir uma mensagem diferente
    baseada na linguagem que eles encolheram.
  • 6:00 - 6:04
    Observe o valor não é o que é mostrado
    no drop-down.
  • 6:04 - 6:07
    É o valor atribuído no HTML.
  • 6:07 - 6:11
    Então "lang" deve ser "en", "es" ou "plt".
  • 6:11 - 6:17
    então isso significa que:
    `if (lang === "es")`,
  • 6:17 - 6:24
    então a saudação deverá ser "Hola",
  • 6:24 - 6:27
    Vamos em frente e fazer
    essa variável de saudação aqui.
  • 6:27 - 6:35
    Então a saudação
    será "Hola, " mais o nome.
  • 6:35 - 6:41
    E se a linguagem por igual a "plt",
    a velha e boa "Pig Latin",
  • 6:41 - 6:49
    a saudação deverá ser,
    "Ello-hey, " mais o nome.
  • 6:49 - 6:53
    e então nós podemos utilizar
    um "else" para o nosso Inglês.
  • 6:53 - 6:55
    Eu vou apenas mover isso para dentro.
  • 6:55 - 6:57
    Muito bem.
  • 6:57 - 7:00
    Ooh, e se você quiser um desafio bônus,
  • 7:00 - 7:04
    tente fazer um conversor
    "Pig Latin" para nomes,
  • 7:04 - 7:08
    para que a saudação inteira,
    inclusive o nome, seja traduzida.
  • 7:08 - 7:10
    Isso seria bem legal.
  • 7:10 - 7:13
    Agora pause o tutorial,
    coloque o seu nome,
  • 7:13 - 7:19
    escolha uma linguagem diferente e tente.
  • 7:19 - 7:20
    Legal, né?
  • 7:20 - 7:24
    Existem várias coisas que você pode fazer
    com entradas de formulário e JavaScript:
  • 7:24 - 7:28
    jogos de palavra, jogos de
    números, contador de histórias...
  • 7:28 - 7:30
    e se você tiver um server
    fora do Khan Academy,
  • 7:30 - 7:33
    você pode utilizar o JavaScript para
    pré-processar o formato de saída
  • 7:33 - 7:35
    antes de mandar para o servidor.
  • 7:35 - 7:39
    Exitem muito mais eventos que você
    pode usar com um formulário,
  • 7:39 - 7:41
    como pressionar teclas e eventos de foco.
  • 7:41 - 7:44
    Apenas se lembre de olhar
    para o valor de entrada,
  • 7:44 - 7:47
    e conferir o valor na hora certa.
  • 7:47 - 7:50
    Você pegará a prática nisso
    no próximo desafio,
  • 7:50 - 7:52
    o qual é o meu favorito.
  • 7:52 - 7:54
    [Legendado por Gabriel Mello Fernandes]
    [Revisado por Paulo Trentin]
Title:
Processamento de formulários com eventos (Versão Vídeo)
Description:

more » « less
Video Language:
English
Duration:
07:54

Portuguese, Brazilian subtitles

Revisions