Как сделать поле неактивным на всех этапах ввода данных
Делаю ToDo лист и застрял на одной доработке - нужно сделать так, что если текстовое поле пустое, нельзя нажать на кнопку "Добавить". Пытался сделать с formButton.disabled = true, но почему-то это срабатывает только при первом клике на кнопку, последующие разы добавить можно и пустое поле. Подскажите, как исправить?
formInput.addEventListener('input', function () {
if (formInput.value.length > 0) {
formButton.disabled = false;
} else if (formInput.value.length < 0) {
formButton.disabled = true;
}
})
<form>
<input type="text" class="form-input" placeholder="Your Task">
<button type="submit" class="form-button" disabled>
<i class="far fa-plus-square"></i>
</button>
<form>
Ответы (1 шт):
Автор решения: xydope
→ Ссылка
const formInput = document.querySelector('.form-input')
const formButton = document.querySelector('.form-button')
const todo = document.querySelector('.todo')
formInput.oninput = ({target}) => {
const isNeedEnable = formButton.disabled && formInput.value.length > 0
const isNeedDisable = !formButton.disabled && formInput.value.length == 0
if (isNeedEnable || isNeedDisable) {
formButton.disabled = !formButton.disabled
}
}
formButton.onclick = (event) => {
event.preventDefault() //отключаем onsubmit
createTodoItem(formInput.value)
//После добавления нужно очистить поле ввода и отключить кнопку.
formInput.value = ""
formButton.disabled = true;
}
createTodoItem = (value) => {
const item = document.createElement('li');
item.classList.add('todo-item')
item.textContent = value;
todo.appendChild(item)
}
<form class="form">
<input type="text" class="form-input" placeholder="Your Task">
<button type="submit" class="form-button" disabled>
<i class="far fa-plus-square">add</i>
</button>
<form>
<ol class="todo">
<ol>