как сделать, чтобы при достижении лимита sum, блокировать нажатие на кнопку JS
я бы хотел узнать, какими способами возможно реализовать блокировку кнопки, если достигнут лимит переменной, допустим, максимум 20 нажатий, потом кнопку блокировать.
Ответы (2 шт):
Автор решения: MoloF
→ Ссылка
let button_click_counter = 0;
myForm.onsubmit = (e) => {
e.preventDefault();
button_click_counter++;
if (button_click_counter >= 20) button.disabled = true;
button.innerText = `SUBMIT ${button_click_counter}`;
}
<form id="myForm">
<button type="submit" id="button">SUBMIT</button>
</form>
Автор решения: OPTIMUS PRIME
→ Ссылка
Пример:
let a = document.getElementById("a");
let b = document.getElementById("b");
limit_clicks(a, 10);
limit_clicks(b, 5);
/***/
function limit_clicks(elem, limit) {
elem.addEventListener("click", function _tmp() {
// Добавляется еще один временный обработчик клика;
if (--limit <= 0) { // уменьшает limit на 1.
// Дошло до нуля?
this.disabled = true; // Отключить кнопку,
this.removeEventListener("click", _tmp); // Удалить обработчик клика.
}
this.textContent = "Осталось: " + limit;
});
}
<button id="a">Click</button>
<button id="b">Click</button>