Моя функция Javascript (и Mootools) не возвращает истину или ложь - PullRequest
0 голосов
/ 15 июля 2010

У меня есть следующая функция:

function validateField(query) {
    new Request.JSON({
        onRequest  :  function() {

        },
        onSuccess : function(json){
            return true;
        },      
        data : query + '&validate=true',
        url  : base + 'ninjquiry.php'
    }).send();              
}

Теперь onSuccess определенно запускается, потому что я могу поместить туда console.log, и он работает, однако, если я делаю следующее где-то еще:

console.log(validateField(query));

Я получаю "неопределенный".Почему это ?

Спасибо за любую помощь заранее

  • Alex

1 Ответ

1 голос
/ 15 июля 2010

Ajax асинхронный . Обратный вызов onSuccess вызывается позже, после завершения функции validateField. return true исчезнет в воздухе.

Вы должны либо сделать свой вызов синхронным - я уверен, что MooTools имеет настройку для этого - но это крайне не рекомендуется, поскольку он может заморозить браузер.

Или, это лучшая альтернатива, измените код так, чтобы все релевантное происходило в обратном вызове onSuccess.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...