У меня есть функция JavaScript, которая выполняет AJAX-вызов для возврата некоторых данных, этот вызов запускается при событии изменения списка выбора.
Я пробовал много способов отобразить мой загрузчик, пока он ждет, поскольку в настоящее время он останавливает список выбора и выглядит не очень хорошо с точки зрения клиента.
Проблема в том, каким образом я пытался показать это, вызов AJAX завершается до того, как загрузчик показывает.
Текущий код:
<select name="addresslist" class="form-select" id="edit-addresslist" onchange="selectAddress(this)">
<option value="none">-- Please select an address from the list below --</option>
//there are more options but this isn't important here
</select>
Файл JS
function selectAddress(data) {
var loader = document.getElementbyId('overlay-loader');
var selectedAddress = data.value;
var uprn = selectedAddress.split(',')[1];
loader.style.display = "block";
$.ajax({
url: '~/collectiondates',
async: false,
data: {
uprn: uprn
},
success: function (data) {
result = data;
}
Это один из способов, которые я пробовал, я также пытался вызвать отдельную функцию на "Событие onchange, отдельная функция внутри selectAddress и другая функция, которая показывает, что загрузчик затем вызывает «selectAddress», но ничего не работает, функция AJAX всегда сначала выполняется, а затем показывает загрузчик (когда он больше не нужен).
Остальная часть кода работает точно так, как ожидалось.
Спасибо.