Quais eventos um <input type = “number” /> dispara quando seu valor é alterado?


Respostas:


73

change seria o evento disparado quando o valor do campo muda.

Acho que o evento HTML5 inputtambém dispararia.


36
oninputé disparado quando as setas 'para cima' e 'para baixo' são clicadas.
N 1,1

2
mas onchange só dispara em desfoque, pelo menos no firefox. Acho que teremos que procurar pelo pressionamento de uma tecla.
andho

onchange e oninput funcionavam no Opera, mas apenas oninput funcionaria no Chrome (e somente então quando eu retornasse false do manipulador de eventos - caso contrário, o Chrome dispararia repetidamente o evento oninput)
Ian Oxley

2
changenão dispara quando o valor é digitado, apenas quando os botões são clicados (pelo menos no Firefox).
Timmmm 01 de

5
inputé como uma fusão entrekeyup change
Thanh Trung

37

Descobri que para jQuery o código a seguir cobria a entrada do teclado, as mudanças da roda do mouse e cliques de botão no Chrome, e também lidava com a entrada do teclado no Firefox

$("input[type=number]").bind('keyup input', function(){
    // handle event
});

2
Adicione 'mudança' a isso também e é perfeito. Você ainda vai querer ouvir as mudanças externas nele também, e não há mal nenhum em adicioná-lo de qualquer maneira.
Matt Fletcher

E também 'rolar o mouse' se quiser selecionar eventos de rolagem dentro do campo de entrada.
Matt Fletcher

4
Observe que .bind()agora está obsoleto em favor de.on()
Michael Hays

7

Eu descobri isso onkeyupe onchangecobri tudo no Chrome 19. Isso lida com a entrada direta de valor, pressionamento de tecla de seta para cima e para baixo, clicando nos botões e rolando a roda do mouse.

onchangepor si só seria suficiente no Chrome, mas outros navegadores que apenas renderizam o campo como uma caixa de texto precisam da onkeyupligação, que funciona perfeitamente para ler o novo valor.

Vincular o mousewheelevento separadamente teve menos sucesso. O evento foi disparado muito cedo - antes que o valor do campo fosse atualizado - e, portanto, sempre forneceu o valor anterior do campo


Isso também é válido para o Firefox.
barfuin de

5

O onchangeevento dispara em desfoque, mas oninputdispara conforme você digita. Talvez você queira colocar um cronômetro no oninputevento e dispará-lo onchangequando o usuário parar de digitar por um segundo.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.