Обработка oninput
Доброго времени суток, господа.
Есть код, который обрабатывает ввод... он делает это столько раз, сколько было введено символов с задержкой 3000. Нужно что бы код выполнялся спустя 3 сек после последнего введенного символа document.addEventListener('DOMContentLoaded', function () { var codeinpit = document.querySelector('#promo'); var price = document.getElementById('price'); codeinpit.oninput = function () { code = this.value; function wait() { const request = new XMLHttpRequest(); const url = "../action/code.php?code=" + code; request.open('GET', url); request.setRequestHeader('Content-Type', 'application/x-www-form-url'); request.addEventListener("readystatechange", () => { if (request.readyState === 4 && request.status === 200) { console.log( request.responseText ); } }); request.send(); // price.innerHTML = code; } setTimeout(wait, 3000); } }); |
eLDeR,
создайте переменную для таймера строка 3 и обнуляйте в строке 19 |
Я не очень разбираюсь в JS этот код я писал день, ссылаясь на всякие источники.. если вы мне подскажите как его дописать, буду благодарен
|
eLDeR,
document.addEventListener('DOMContentLoaded', function () { let codeinpit = document.querySelector('#promo'); let price = document.getElementById('price'); let timer; codeinpit.oninput = function () { window.clearTimeout(timer); let code = this.value; function wait() { const request = new XMLHttpRequest(); const url = "../action/code.php?code=" + code; request.open('GET', url); request.setRequestHeader('Content-Type', 'application/x-www-form-url'); request.addEventListener("readystatechange", () => { if (request.readyState === 4 && request.status === 200) { console.log( request.responseText ); } }); request.send(); // price.innerHTML = code; } timer = setTimeout(wait, 3000); } }); |
|
Цитата:
https://habr.com/ru/post/60957/ |
Часовой пояс GMT +3, время: 16:19. |