Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 25.01.2012, 12:49
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от lolka84 Посмотреть сообщение
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;

    .....

  }

}
функция, в которой return false, исполняется после совершения запроса. вам нужно, чтобы она возвращала false до запроса. вы плохо знаете ajax. я бы кинул пару ссылок на мануалы, но не помню ни одного

Сообщение от lolka84 Посмотреть сообщение
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;
}
Она же асинхронная!
Ответить с цитированием
  #12 (permalink)  
Старый 25.01.2012, 13:48
Кандидат Javascript-наук
Отправить личное сообщение для lolka84 Посмотреть профиль Найти все сообщения от lolka84
 
Регистрация: 23.08.2010
Сообщений: 123

Сообщение от melky Посмотреть сообщение
вы плохо знаете ajax.
Обратного и не утверждаю Ламер пока, да.
Как заставить конструкцию то работать все-таки ?
Ответить с цитированием
  #13 (permalink)  
Старый 25.01.2012, 15:15
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

XMLHttp.onreadystatechange = function() {
        if (XMLHttp.readyState == 4) {
          if (XMLHttp.status == 200) {
            if (XMLHttp.responseText == "FAIL") { 
              alert("Ошибка");
            }
          }
        }
      }
      return false;
Ответить с цитированием
  #14 (permalink)  
Старый 03.01.2014, 10:40
Новичок на форуме
Отправить личное сообщение для mnestrahno Посмотреть профиль Найти все сообщения от mnestrahno
 
Регистрация: 03.01.2014
Сообщений: 1

onsubmit="return false"
Ответить с цитированием
  #15 (permalink)  
Старый 09.01.2014, 02:33
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от lolka84
Привет. Есть следующее:
<form onSubmit="return func('1');">
По-моему возврат фолсов давным давно не работает. Ну может в старых браузерах еще. В которых наверно не работают методы

e.preventDefault();

и

e.stopPropagation().

которые применяются, разумеется, раздельно, но имеют общий смысл.

Вам надо на форму повесить прерывание на submit и задать вектор на e.preventDefault(); с проверкой условия, которое и снимет ваш асинхронный ахакс.

Например вот так

addEvent(form, "submit", function(e) {
		if(cancel_default_submit && e.preventDefault)
                     e.preventDefault();
		return cancel_default_submit;
	});
Ответить с цитированием
  #16 (permalink)  
Старый 09.01.2014, 02:57
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

lolka84,
вам при любых значениях нужно возвращать return false иначе форма будет отправлятся
onsubmit="func('a'); return false;"
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать задержку отправки формы на javascript? Akimserg Общие вопросы Javascript 12 19.10.2015 13:15
Как сделать disabled кнопки во время отправки формы? Bad Request Events/DOM/Window 7 16.04.2014 13:49
Валидация поля для отправки формы shkarbatov Javascript под браузер 3 25.07.2011 14:07