Форум 1С-Битрикс

Задавайте свои вопросы и отвечайте на вопросы других участников форума


Задержка исполенения функции при вводе символов (чисел) в строке input

Здравствуйте.
Как сделать так, чтобы при поочередном вводе символов в строку input, функция не отправляла данные на сервер посимвольно(по одному симфолу), а ждала когда все символы будут введены и после этого только отправила строку на сервер. Другими словами, как сделать задержку исполнения функции или события jquery при вводе в input всех символов.

Ответ 1

Написал рабочий кусок кода, выполнение функции с ожиданием.

Код

$('input').on('keyup', function(){
        var $this = $(this);
        var $delay = 500;

        clearTimeout($this.data('timer'));

        $this.data('timer', setTimeout(function(){
                $this.removeData('timer');
                         
            $.ajax({
                type: 'POST',
                url: "/ajax/basket_ubdate.php",
                data: {id:id,quantity:quantity},
                success: function(data){
            
            }
           });
        }, $delay));

});
$this - хранит ссылку на объект строки ввода input
$delay - время ожидания (timeout) в миллисекундах.
Перед выполнением функции, мы сбрасываем таймер который мог быть ранее создан.
Далее скрипт присваивает новый таймер и выполнит ваш код, который запустится после ввода значения.
В нашем случае это AJAX запрос на сервер/

Возврат к списку