KeyUp Event blockiert


#1
Hallo zusammen,

Nach Änderung der Stückzahl in einem Input-Element, soll der Preis neu berechnet werden, daher wird über das ein KeyUp-Event ein Ajax-Aufruf gestartet, wodurch dann weitere Eingaben im Input-Feld irgendwie zeitweise geblockt werden. Z.B. steht bei 3x schnellem Tippen der Ziffer 1 nur 11 an Stelle von 111 im Feld, als hätte man nur 2x gedrückt.

Hat jemand irgendeine eine Ahnung?

Code:
$('#input').keyup(() => {
            webservice.call("1234", "4321");
});

//Webservice
public call(customerID: string, articlenumber: string) {
        $.ajax({
            async: true,
            type: 'POST',
            url: "../ctrl/SOAP.ctrl.php",
            data: {
                'action': "getVK",
                'datas': '{"SOAP":"GetVK", "customerID":"' + customerID + '", "articlenumber":"' + articlenumber + '"}'
            },
            success: (result) => {
                    //Do Something
            }
        });
 
Zuletzt bearbeitet:
#4
Danke für den Tip Basti, leider hat es mit dem Keydown auch nicht geklappt.

Habe jetzt mit setTimeout und einer Callback Funktion gelöst:

Code:
$('#input').keyup(() => {
...
            setTimeout(()=>{
                webservice.call("1234", "4321", ()=>{refreshPrice()}
              }, 0);
  });

//Webservice
public call(customerID: string, articlenumber: string, callback: Function) {
        $.ajax({
            async: true,
            type: 'POST',
            url: "../ctrl/SOAP.ctrl.php",
            data: {
                'action': "getVK",
                'datas': '{"SOAP":"GetVK", "customerID":"' + customerID + '", "articlenumber":"' + articlenumber + '"}'
            },
            success: (result) => {
            ...
                    callback();
            }
        });