Как ждать Ajax-запрос?
Я пытаюсь написать код JS, который отменит событие .onclick кнопок "btn_submit", если данное число уже существует в базе данных. Я использую AJAX, чтобы запросить у БД заданное число и определить, следует ли отправлять данные на сайт .php, который будет загружать вопрос. Чтобы определить это, мне нужно значение переменной numOfRows, но поскольку я установил ее в AJAX, она останется равной 0. Функция validation () завершит работу до того, как мой AJAX-запрос завершится, и это вызовет проблему, которая всегда будет указывать, что данное число не существует в БД (numOfRows всегда будет оставаться на 0). Как я могу дождаться окончания запроса AJAX, прежде чем сравнивать numOfRows с 0 в конечных строках моей функции validation ()? Если номер уже существует в БД, мне нужно вернуть false в эту строку:
document.getElementById ("btn_submit"). onclick = validation;
Спасибо!
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);
}
});
}