Wie kann ich auf die Ajax-Anfrage warten?

Ich versuche, einen JS-Code zu schreiben, der das "btn_submit" -Knopf-Klickereignis abbricht, wenn die angegebene Nummer bereits in der Datenbank vorhanden ist. Ich verwende AJAX, um die Datenbank nach der angegebenen Nummer abzufragen und zu bestimmen, ob die Daten an eine .php-Site gesendet werden sollen, von der die Frage hochgeladen wird. Um dies festzustellen, benötige ich den Wert der Variablen numOfRows, aber da ich ihn in AJAX festgelegt habe, bleibt er auf 0. Die validation () -Funktion wird beendet, bevor meine AJAX-Abfrage abgeschlossen ist, und dies führt zu dem Problem, dass immer angegeben wird, dass die angegebene Nummer nicht vorhanden ist existieren in der DB (numOfRows bleiben immer auf 0). Wie kann ich das Ende der AJAX-Abfrage abwarten, bevor ich die numOfRows in den Endzeilen meiner validation () - Funktion mit 0 vergleiche? Wenn die Nummer bereits in der Datenbank vorhanden ist, muss in dieser Zeile false zurückgegeben werden:

document.getElementById ("btn_submit"). onclick = validation;

Vielen Dank

var textAreaList;
var numOfRows = 0;
var finished = false;

document.getElementById("btn_submit").onclick = validation;

textAreaList = document.getElementsByClassName("text_input");

function validation() {
    loadNumRows();

    try {
        document.getElementById('failure').hidden = true;
    }
     catch(e) {
         console.log(e.message);
     }
    textAreaList = document.getElementsByClassName("text_input");
    var failValidation = false;
    for (var i = 0; i < textAreaList.length; i++) {
        console.log(textAreaList[i]);
        if (textAreaList[i].value == "") {
            textAreaList[i].style.border = "2px solid #ff0000";
            failValidation = true;
        } else {
            textAreaList[i].style.border = "2px solid #286C2B";
        }
    }

    return !(failValidation || numOfRows != 0);
}

function loadNumRows(){
    $.ajax({
        url: 'php/SeeIfNumberExists?number=' + document.getElementById('number_inp').value,
        type: "GET",
        cache: false,
        success: function (html) {
           numOfRows = parseInt(html);               
        }
    });
}

Antworten auf die Frage(4)

Ihre Antwort auf die Frage