2017-12-07 1 views
2

Ich habe ein Problem mit der .change() Funktion in JQuery in Kombination mit einer Eingabe vom Typ "Nummer".
Schnell und schmutzig Mockup, die den Punkt herüber erhält:
JSfiddle: https://jsfiddle.net/vtuk69bj/jQuery .change() Funktion stark verzögert mit Zahleneingabe

$('#testInput').change(function(){ 
$('#testDiv').html($('#testInput').val()); 
}) 

Wie Sie, wenn Sie auf die Pfeile in der Eingabe verwenden sehen/Abnahme Zahlen zu erhöhen, schnell (oder sogar nicht so schnell), Die Funktion ist in einigen Fällen unglaublich verzögert.

Ich weiß, ich könnte Sachen wie keyup oder click verwenden, aber das würde nicht sowohl die Option, mit Pfeilen zu erhöhen/verringern, oder direkt eine Zahl selbst eingeben. Gibt es eine Möglichkeit, alle meine Basen abzudecken, ohne 2-3 + verschiedene Funktionen zu haben?

+0

Veränderung geschieht, wenn der Fokus aus dem Eingabefeld verloren. Solange Sie Fokus haben und auf und ab schlagen, wird es nicht passieren, bis der Fokus verloren ist. – Taplar

+0

Ändern Sie Ihre Bindung, um das Ereignis 'input' zu verwenden. – Taplar

Antwort

2

Das Ereignis input wird immer ausgelöst, wenn sich der Wert des Eingangs ändert.

$('#testInput').on('input', function() { 
 
    $('#testDiv').html(this.value); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="testInput" type="number" min="1" max="999"> 
 
<div id="testDiv"> 
 
    1 
 
</div>

+0

Das ist perfekt, danke! – RadicalM1nd