Как предотвратить двойное нажатие клавиши ввода на веб-сайте со списком дел?Javascript

Форум по Javascript
Ответить
Anonymous
 Как предотвратить двойное нажатие клавиши ввода на веб-сайте со списком дел?

Сообщение Anonymous »

Я изо всех сил пытаюсь исправить эту ошибку.
Вот мой JS:

Код: Выделить всё

let todos = [];
const addNewBtn = document.getElementById("addNewBtn");

function addNew(){
const existingInput = document.getElementById("inputTodo");
if (existingInput) return;

const input = document.createElement("input");
input.type = "text";
input.id = "inputTodo";
input.placeholder = "Enter to do";
input.style.display = "block"

addNewBtn.insertAdjacentElement("afterend", input)
input.focus();

document.addEventListener("keydown", event => {
if(event.key === "Enter"){
event.preventDefault();
if(input && document.activeElement === input){
saveTodo();
}
}
})
input.addEventListener("blur", () => {
setTimeout(saveTodo, 0);
});

function saveTodo(){
const value = input.value.trim();
if(value !== ""){
todos.push({ id: Date.now(), text: value, completed: false });
renderTodos();
}
input.remove();
}
}

function renderTodos(){
console.clear();
for(const todo of todos){
console.log(todo.text);
}
}
Когда я нажимаю Enter после ввода чего-либо, оно дважды печатается на моей консоли. Мне нужно помочь распечатать его только один раз. Если я отменяю выбор и нажимаю где-нибудь в другом месте вместо нажатия клавиши «Ввод», он печатается только один раз, поэтому это работает, но мой ввод не работает.
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/798 ... st-website
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»