Mam pole tekstowe, w którym użytkownik może wprowadzać tylko dane liczbowe. Używam następującą funkcję keyup pola tekstowego:Opóźnienie zdarzenia jQuery na wejściu użytkownika
$('#ssn').keyup(function() {
var val = this.value.replace(/\D/g, '');
this.value = val;
});
Problem używam do jest lag gdy klawisze w górę na ograniczonym klucza użytkownika, wyświetlacze znakowe na chwilę przed jej zastąpić pusty ciąg. Przytrzymanie klawisza wyświetli strumień znaków w polu, dopóki klucz nie zostanie zwolniony. Czy istnieje sposób, aby temu zapobiec? Wypróbowałem różne zdarzenia na klawiaturze, takie jak keydown lub keypress, i nie zachowywały się lepiej. Oto skrzypce problemu: https://jsfiddle.net/oxpy96g9/
do 'lag' jest nieuniknione jak 'keyu Zdarzenie p' nie uruchamia się, dopóki klucz nie zostanie zwolniony, a wartość zostanie dodana do pola wejściowego. –
1. Spowolnienie wprowadza się za pomocą jQuery 2. Wprowadza się spowolnienie poprzez powtarzaną deklarację zmiennej 3. Wprowadza się spowolnienie przez uruchomienie maszyny JavaScript Regex 4. Twój kod działa po zwolnieniu klucza przez użytkownika, który wygląda jak spowolnienie. W sumie napisałeś bałagan. –
Spróbuj słuchać zdarzenia 'input' zamiast ...' $ ('# ssn'). On ('input', function() {...}); ' –