ajax: eingabe nach jedem Tippen überprüfen

xep22

Banned
Registriert
Apr. 2018
Beiträge
395
hallo, ich will mit ajax bei jedem tastendruck folgendes übergeben damit ich eine Ausgabe in der span erhalte, so erhalte ich sie nur wenn das Textfeld nicht mehr aktiv ist, was muss ich tun damit das nach jedem Tastendruck geht ?

Code:
<script>
function checkAvailabilityNickname(){
    jQuery.ajax({
    url: "mach.php",
    data:'eingabe='+$("#eingabe").val(),
    type: "POST",
    success:function(data){
        $("#check").html(data);
    },
    error:function (){}
    });
}
</script>
<input type="text" id="eingabe" name="eingabe" onBlur="checkAvailabilityNickname()"><br><br><span id="check"></span>
 
So sollte es klappen: $('#eingabe').on('keydown', function(e) { /* ... */ })
Ausserdem habe ich hier noch mal ein Beispiel mit der debounce Funktion von lodash. Damit wird der Request erst nach 250ms nach dem letzten Tastendruck ausgefuehrt anstatt bei jedem einzelnen. Das reduziert die Menge unnoetiger Anfragen an den Server.

HTML:
<input type="text" id="eingabe" name="eingabe"><br><br><span id="check"></span>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>
<script>
  $('#eingabe').on('keydown', _.debounce(function(e) {
    jQuery.ajax({
      url: "mach.php",
      data:'eingabe='+$("#eingabe").val(),
      type: "POST",
      success:function(data){
        $("#check").html(data);
      },
      error:function (){}
    });
  }, 250))
</script>
 

Ähnliche Themen

Zurück
Oben