Показать сообщение отдельно
  #10 (permalink)  
Старый 25.01.2012, 08:47
Кандидат Javascript-наук
Отправить личное сообщение для lolka84 Посмотреть профиль Найти все сообщения от lolka84
 
Регистрация: 23.08.2010
Сообщений: 123

Блин, неоднократно взорвал себе мозг, нечего не понимаю, офигеть я чайник

В функции запускается ajax запрос, условие if() - это выдергивание нужного ответа сервера, т.е.
function func(x) {

  switch(x) {

    .....

    case "1":
      ...

      XMLHttp.onreadystatechange = function() {
        if (XMLHttp.readyState == 4) {
          if (XMLHttp.status == 200) {
            if (XMLHttp.responseText == "FAIL") { 
              alert("Ошибка"); return false;  
            }
          }
        }
      }

      break;

    .....

  }

}

Alert вылазит, но форма все равно отправляется, как будто return false; вовсе нет.

Попробывал так:
function func(x) {

  switch(x) {

    .....

    case "1":
      ...

      XMLHttp.onreadystatechange = function() {
        if (XMLHttp.readyState == 4) {
          if (XMLHttp.status == 200) {
            if (XMLHttp.responseText == "FAIL") { 
              alert("Ошибка"); x = false;  
            }
            else { x = true; }
          }
        }
      }

      break;

    .....

  }
  return x;
}

Но за пределами XMLHttp.onreadystatechange = function() переменная x неопределена

Как заставить работать эту конструкцию ?
Ответить с цитированием