Поскольку функции используют AJAX, вторая вызывается до того, как первый вызов AJAX вернется и установит значение данных.Ключевая буква в AJAX - это первая буква «А» - асинхронная, что означает, что поток кода продолжается, не дожидаясь ответа.Вы можете избежать этого (и не использовать data
для хранения промежуточных результатов), изменив функцию is_email
на прием обратного вызова.Запустите вторую функцию как обратный вызов, когда вызов AJAX завершится в зависимости от результата первого вызова.
function is_email( id, type, check, callback )
{
var that = this;
$.post( '/email/check', $('#'+id).val(), function(result) {
if (result == 'ok') {
if (callback) {
callback.call(that,id,type,check);
}
}
}
}
Используется как:
is_email(id, "employees", "email", istaken);