тут варианта 2 - написать свой js движок, в котором ajax будет синхронный, продвинуть этот движок во все браузеры, параллельно поправить стандарты ActionScript. До даже тогда ваш говнокод не заработает, потому что надо хотя бы какое-то значение возвращать из функции checkTranslit.
Ну или можно просто запомнить одно простое правило - если нужно выполнить какое-то действие после завершения ajax запроса, то это действие должно выполнятся в success колбэке.
Перепишите код
//валидатор
checkTranslit($('#translit').val());
//запрос
function checkTranslit(translit){
$.ajax({
url: 'http://site.com/scripts/checkTranslit.php',
data: {'translit': translit},
type: 'POST',
dataType: 'json',
async: false,
success: function(data){
if (!answer.result) {
errorArray.push("translit");//кладем поле в массив с ошибками
console.log('value is: ' + $('#translit').val());
console.log('result is: ' + answer.result);
}
},
error: function(error){
console.log('error is: ' + error + '\n');
return error;
}
});
}
Если у вас dataType: json, зачем вы какие-то манипуляции с ними в колбэках проводите? Скрипт на сервере должен возвращать json, а в колбэке уже будет десерализованный объект