Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Остановка отправки формы ajax 
:(
    Опции темы
Niko8D
Дата 16.10.2015, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 23.11.2009

Репутация: нет
Всего: нет



Что-то странное происходит, поставил console.log перед 

Код

$.ajax({        
        type: 'POST',
        url: "validat.php",
        data: msg,
        async: false,
        datatype: "json",
        success:   
                
        function(data){
            var json = JSON.parse(data)
            if(json.duble_user == 1){
                construct_messages(config_valid["duble_user"],'text');
                error = false; 
            } else {
                
                console.log(data)

                $('#form_ajax').submit();
            }
        }            
    }); 
    return false; 
}


В консоле происходит какой-то цикл, который выводит 975 раз

Код

 {"duble_user":null}


 (там еще ошибка появляется в конце, но я не успеваю ее разглядеть, так как форма отправляется, соответственно страница обновляется) естественно это занимает какое-то время и далее форма отправляется. Если убераеш парамент

Код

async: false


то цинкл идет до бесконечности.

Добавлено через 13 минут и 26 секунд
Console.log выводит интересные результвты. Console.log я поставил перед стракой отправки формы

Код

 $('#form_ajax').submit();


Консоль выводит  цикл и  при каждом выводе выводит строку 

Код

{"duble_user":null}


Цикл бесконечный, но как только в ajax устанавливаешь параметр 

Код

async: false


цикл обрывается на 975 выводе. Вот такая ерунда, почему так происходит я не понимаю.
PM MAIL   Вверх
Niko8D
Дата 16.10.2015, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 23.11.2009

Репутация: нет
Всего: нет



Console.log выводит интересные результвты. Console.log я поставил перед стракой отправки формы

Код

 $('#form_ajax').submit();


Консоль выводит  цикл и  при каждом выводе выводит строку 

Код

{"duble_user":null}


Цикл бесконечный, но как только в ajax устанавливаешь параметр 

Код

async: false


цикл обрывается на 975 выводе. Вот такая ерунда, почему так происходит я не понимаю.

PM MAIL   Вверх
ksnk
Дата 16.10.2015, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



Мне казалось, что явный вызов submit() не вызывает обработчик onsubmit. Возможно теперь это уже не так.
Можно так изменить обработчик - добавить переменную `call.gone`. По значению переменной - вызывать $.ajax  еще раз или не вызывать.
Код

if(!call.gone){
   call.gone=true;
$.ajax({        
        type: 'POST',
        url: "validat.php",
        data: msg,
        async: false,
        datatype: "json",
        success:   
                
        function(data){
           setTimeout(function(){call.gone=false;},10); // таймаут, чтобы submit не зациклился
           var json = JSON.parse(data)
            if(json.duble_user == 1){
                construct_messages(config_valid["duble_user"],'text');
                error = false; 
            } else {
                
                console.log(data)
                $('#form_ajax').submit();
            }
        }            
    }); 
}
    return false; 
}



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Niko8D
Дата 19.10.2015, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 23.11.2009

Репутация: нет
Всего: нет



Что самое интересное, если этот скрипт вынести отдельно, например в отдельный файл (в чистый файл не связанный с проектом), то он работает нормально (т.е. без зацикливания). Сейчас буду разбератся, в чем причина зацикливания.
PM MAIL   Вверх
Niko8D
Дата 19.10.2015, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 23.11.2009

Репутация: нет
Всего: нет



Теперь мне все понятно. Как выше было сказано. Проблемы в версии jqury. В версии jQuery 1.2.6 работает нормально, а в версии jQuery v1.8.2 отправка формы зацикливеатся. 

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0696 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.