Ich habe ein Suchformular, das ich versuche, dynamisch zu schreiben. Auf Key-up sende ich das Formular. Ich stoße jedoch auf Probleme mit großen Datensätzen. Das Problem besteht darin, dass jede Formularübergabe immer ein Ergebnis zurückgibt und dieses Ergebnis immer in das DOM eingefügt wird. Wenn ich zum Beispiel das vierte Zeichen in keyup eintippe, übergibt es das Formular und gibt 100 übereinstimmende Ergebnisse zurück. Wenn Sie das fünfte Zeichen eingeben, werden nur 2 Ergebnisse zurückgegeben. Die Ausführungszeit des fünften Zeichens kehrt schneller als die vierte zurück. Also was passiert, ist, dass es die 2 Ergebnisse im DOM malt und dann die 4 zurückgibt und die 100 Ergebnisse in das DOM malt.Abbrechen eines früheren Jquery-Formulars beim Übermitteln der Nachricht
Gibt es eine Möglichkeit zum Abbrechen oder Ignorieren der vorherigen Formular-Post-Ergebnisse, wenn ein Keyup-Ereignis nach dem Senden passiert? Hier ist die Form und die einreichen über Javascript
@using (Ajax.BeginForm(new AjaxOptions
{
HttpMethod = "get",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "Breweries"
}))
{
<input id="brewerySearchInput" class="form-control page-header-input" placeholder="Search" type="search" name="searchTerm" />
}
<script>
$("#brewerySearchInput").keyup(function() {
if ($(this).val().length >= 3 || $(this).val().length == 0) {
$('#form0').delay(200).submit();
}
});
</script>
BINGO !!! das ist wie ein Zauber! Für Leute hier folgende arbeitete der eingestellte Code ist auf der Basis Beantworten Sie oben, um zu verweisen – JoeyD