11 / 11 / 8
Регистрация: 26.03.2014
Сообщений: 400
1

AJAX Событие при неактивности

18.02.2018, 13:57. Показов 574. Ответов 0
Метки нет (Все метки)

Привет!

есть поле input, при вводе (поднятии клавиши keyup) выполняется AJAX, ищу в таблице значения содержащие value из input, возвращаю.

Пытаюсь сделать, чтобы запрос отправлялся в случае если пользователь не вводил в input ничего в течении 5234 мс.
Но он отправляется через 5234 после первого подъема клавиши, а не в момент "неввода" в течении 5234. Как сделать правильно?
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
                                    $(function() {
                                        "use strict";
                                        $(document).on('keyup', 'input[name=marki]', function(e){
                                            e.preventDefault();
                                            setTimeout(send, 5234);
                                            function send() {
                                                $.ajax({
                                                    url: 'tmpl/obrabotka.php',
                                                    method:'post',
                                                    data: {getserver: $('input[name=marki]').val()},
                                                    success:function(loader){
                                                        $('.marki').html(loader);
                                                    }
                                                });
                                            }
                                            
                                        });
                                    });
HTML5
1
2
<input class="inlineblock w100 mb10" name="marki" type="text" placeholder="Поиск">
<div class="marki inlineblock w100"></div>
PHP
1
2
3
4
5
6
7
8
9
10
11
12
if (isset($_POST['getserver'])) {
        $val = $_POST['getserver'];
        $res=DB::query("SELECT * FROM `marki` WHERE `value` LIKE '%$val%'");
                                        $check=DB::num_rows($res);
                                        if ($check>0) {
                                            while ($row = DB::fetch_array($res)) {
                                                $name = $row[img];
                                                $value = $row[value];
                                                $result .= '<a href="'.$url.$value.'/"><img class="img inlineblock m8 h80" src="img/'.$name.'"></a>';
                                            }
                                        }
    }
Добавлено через 3 минуты
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$(function() {
                                        "use strict";
                                        var timerId;
                                        $(document).on('keyup', 'input[name=marki]', function(e){
                                            e.preventDefault();
 
                                            clearTimeout(timerId);
                                            timerId = setTimeout(send, 5234);
                                            
                                            function send() {
                                                $.ajax({
                                                    url: '<?echo $up;?>tmpl/obrabotka.php',
                                                    method:'post',
                                                    data: {getserver: $('input[name=marki]').val()},
                                                    success:function(loader){
                                                        $('.marki').html(loader);
                                                    }
                                                });
                                            }
                                            
                                        });
                                    });
Оказывается есть отмена таймера, объявил переменную, и отменяю в случае подъема клавиши.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.02.2018, 13:57
Ответы с готовыми решениями:

При активном чекбоксе добавлять класс к фрейму, а при его неактивности удалять этот класс
Привет, есть проблема, нужно при активном чекбоксе добавлять класс к фрейму, а при его неактивности...

Событие Ajax на определенный элемент
Добрый день. Подскажите как сделать ajax событие на определенный элемент. К примеру: &lt;a...

Событие нажатия на кнопку с ajax
Делаю подписку на пользователя. Есть кнопка &lt;button id=&quot;subscribe&quot;...

Можно ли, отловив событие ajax, заменить данные?
можно ли отловив событие ajax (посылку данных) заменить данные ?

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.02.2018, 13:57

Событие success и error в обычном submit (без AJAX)
Вопрос может и глупый но никак не могу найти ответ. Есть ли способ отследить получение ответа от...

Как описать событие нажатия на динамическую сформированную кнопку ajax?
Заранее извиняюсь если не совсем туда написал. Переместите плс в нужное место если я ошибся с...

При неактивности программы минут 5 теряется соединение, и при подключении приходится сново долго ждать
Данные для подключения берутся из XML файла, которые подключен к проекту public void...

Как сделать так чтобы компьютер при простое отключался только при неактивности клавиатуры?
Как сделать так чтобы компьютер при простое отключался только при неактивности клавиатуры? А...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru