Обработка 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, время: 03:17. |