Здравствуйте.
Как сделать так, чтобы при поочередном вводе символов в строку 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 запрос на сервер/