Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.12.2012, 15:05
Новичок на форуме
Отправить личное сообщение для hijeane Посмотреть профиль Найти все сообщения от hijeane
 
Регистрация: 02.12.2012
Сообщений: 3

ajax запрос на событие change
Всем привет необходима небольшая помощь, т.к. в js/jquery я к сожалению нуб.
Есть инпут с автокомплитом, на событие change выполняется ajax запрос с таймаутом. Все вроде замечательно, но запрос выполняется два раза, можно ли это как-то поправить.
$('#input').change(function()
        {
            var result = $(this).val();
            if (result != null) {
                $('#input').val(result);
                $('#input_1').removeAttr("disabled");
                $('#input_2').removeAttr("disabled");
                setTimeout(function() {
                    url = '/get-values?region='+result;
                    var ajax = $.ajax({
                        url: url,
                        async: false,
                        beforeSend: function (data) {$("#spinner").modal('show');},
                        complete: function (data) {$("#spinner").modal('hide');}
                       }).responseText;
                }, 500);
            }
        }
    );

Последний раз редактировалось hijeane, 02.12.2012 в 15:19.
Ответить с цитированием
  #2 (permalink)  
Старый 03.12.2012, 23:06
Аватар для a_l
a_l a_l вне форума
Кандидат Javascript-наук
Отправить личное сообщение для a_l Посмотреть профиль Найти все сообщения от a_l
 
Регистрация: 15.09.2011
Сообщений: 143

Цитата:
Есть инпут с автокомплитом
Автокомплит и виноват скорей всего. Вызывает событие, предлагая значение.
P.S. Не понял для чего это написано:
$('#input').val(result);
Ответить с цитированием
  #3 (permalink)  
Старый 05.12.2012, 08:54
Аватар для ОлегА
Профессор
Отправить личное сообщение для ОлегА Посмотреть профиль Найти все сообщения от ОлегА
 
Регистрация: 25.08.2011
Сообщений: 420

вообще у jQuery.ajax'а есть свой таймаут

ajax = $.ajax({
url: url,
async: false,
beforeSend: function (data) {$("#spinner").modal('show');},
complete: function (data) {$("#spinner").modal('hide');},
timeout : 500
})

по моему так, почитай здесь еще http://api.jquery.com/jQuery.ajax/, может поможет исправить ошибку

а вот это $('#input').val(result); действительно не понятная штука, смысла в ней нет...
Ответить с цитированием
  #4 (permalink)  
Старый 05.12.2012, 12:14
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

ОлегА, timeout : 500 означает, что
Цитата:
timeout :integer
Время ожидания ответа от сервера. Задается в в миллисекундах. Если это время будет превышено, запрос будет завершен с ошибкой и произойдет событие error (см. описание выше), которое будет иметь статус "timeout".
Ответить с цитированием
  #5 (permalink)  
Старый 05.12.2012, 15:26
Аватар для ОлегА
Профессор
Отправить личное сообщение для ОлегА Посмотреть профиль Найти все сообщения от ОлегА
 
Регистрация: 25.08.2011
Сообщений: 420

Serg_pnz, а да погнал я, ты прав)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AJAX запрос в Internet Explorer срабатывает через раз nikolayseo jQuery 5 13.11.2012 00:13
Как можно кешировать Ajax запрос ? saturn AJAX и COMET 5 27.10.2012 14:48
событие на динам. элемент (jQery, Ajax, php) kost_ik jQuery 2 06.11.2010 12:16
Синхронный запрос данных по AJAX Shasoft AJAX и COMET 2 03.03.2009 14:07
ajax запрос с подгружемным js HelpeR AJAX и COMET 1 27.10.2008 12:44