Здравствуйте,
с аяксом почти не имела дела.
Помогите, пожалуйста, можно ли так сделать, код ниже :
В коде проверяются в инпуте валидность данных,
так как некоторые условия можно проверить без сервера, сначала проверяются они,
затем если условия соблюдены и нужно искать есть ли вообще такой код, происходит обращение
к серверу.
Поскольку это аякс, то он возвращает данные асинхронно (проверка по 3600 кодам это долго), первоначальная функция уже успела выполниться.
Можно ли как-то "подождать;" ответа аякса, в случае если был по нему вызов?
Как еще можно сделать в этом случае?
$('#promo_code').on('input', onInputPromo);
function onInputPromo(e){
var code = $(this).val();
//некие действия
var isValid = checkPromoValidation (code); // получаем данные валиден или нет false/true
if(!isValid) {
//показываем ошибку
return;
}else{
//действия в случае успеха
}
}
};
function checkPromoValidation (code){
var isValid = false;
if(проверка не прошла) {
return isValid ;
}
if(проверка не прошла) {
return isValid ;
}
//если прошли все проверки тогда уже проверяем на сервере
ajaxPromo = $.ajax({
type:"POST",
url: "check-promo.php",
data: {
'code': code
}
});
ajaxPromo.done(function(data){
return data;
});
};