Quali eventi si attiva un <input type = "number" /> quando il suo valore viene modificato?


Risposte:


73

change sarebbe l'evento che viene generato quando il valore del campo cambia.

Penso che anche l'evento HTML5 inputverrebbe attivato.


36
oninputviene attivato solo quando si fa clic sulle frecce "su" e "giù".
N 1.1

2
ma onchange si attiva solo in caso di sfocatura, almeno in Firefox. Immagino che dovremo cercare la pressione dei tasti.
andho

onchange e oninput funzionavano entrambi in Opera, ma solo oninput funzionava in Chrome (e solo allora quando restituivo false dal gestore eventi, altrimenti Chrome avrebbe attivato ripetutamente l'evento oninput)
Ian Oxley

2
changenon si attiva quando si digita il valore, solo quando si fa clic sui pulsanti (almeno su Firefox).
Timmmm

5
inputè come una fusione trakeyup change
Thanh Trung,

37

Ho scoperto che per jQuery il seguente codice copriva l'input da tastiera, le modifiche della rotellina del mouse e i clic sui pulsanti in Chrome e gestiva anche l'input da tastiera in Firefox

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

2
Aggiungi anche il "cambiamento" ed è perfetto. Avrai comunque voglia di ascoltare anche le modifiche esterne ad esso, e comunque non c'è nulla di male ad aggiungerlo.
Matt Fletcher

E anche 'rotellina del mouse' se vuoi raccogliere gli eventi di scorrimento all'interno del campo di input.
Matt Fletcher

4
Nota che .bind()ora è deprecato a favore di.on()
Michael Hays

7

L'ho trovato onkeyupe ho onchangecoperto tutto in Chrome 19. Gestisce l'inserimento diretto del valore, la pressione dei tasti freccia su giù, il clic sui pulsanti e lo scorrimento della rotellina del mouse.

onchangeda sola sarebbe sufficiente in Chrome, ma altri browser che riproducono il campo solo come una casella di testo necessitano onkeyupdell'associazione, che funziona perfettamente per leggere il nuovo valore.

Vincolare l' mousewheelevento separatamente ha avuto meno successo. L'evento è stato attivato troppo presto, prima che il valore del campo venisse aggiornato, e quindi ha sempre fornito il valore precedente del campo


Questo vale anche per Firefox.
barfuin

5

L' onchangeevento si attiva in caso di sfocatura ma l'evento si attiva durante la oninputdigitazione. Forse potresti voler mettere un timer oninputsull'evento e attivare il tuo onchangeevento quando l'utente ha smesso di digitare per un secondo?


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.