eval()
? Отправляйте форму AJAX-ом и выполняйте нужный вам код при возврате результата в коллбэк-функции. Или может я что-то не так понял. Само по себе использование eval()
при современном развитии JS это, если можно так выразиться, даже уже "незаконно" :) function toDoOut () { //Функция вывода в HTML списка дел
let outputData = ''; //Создание пустой переменной, в которую будем добавлять дела
for (var i = 0; i < toDoList.length; i++) {
if (toDoList[i].check == true) { //Проверка checkbox'а на его значение
outputData += '<label><input class="checkbox" type="checkbox" data-task="' + toDoList[i].taskName + '" checked>' + toDoList[i].taskName + '</label>';
} else {
outputData += '<label><input class="checkbox" type="checkbox" data-task="' + toDoList[i].taskName + '">' + toDoList[i].taskName + '</label>';
}
toDoListOutputPlace.innerHTML = outputData;
}
}
document.addEventListener('click', e => {
if (e.target.classList.contains('checkbox')) {
let local = JSON.parse(localStorage.getItem('toDo'));
local.forEach((el, i) => {
if (el.taskName === e.target.getAttribute('data-task')) {
local[i].check = !el.check;
localStorage.setItem('toDo', JSON.stringify(local));
}
})
}
});
temp
внутри самой функции клика по кнопке, а не вне ее:function toDoFun () { //Функция дополнения массива дел делами
let data = toDoText.value; //Название дела
if (data != '') { //Проверка на пустоту input'а
temp = {};
temp.taskName = data; //Запись в temp названия дела
temp.check = false; //Запись в temp названия дела
toDoList.push(temp); //Дополнение массива дел нашим temp'ом
toDoOut(); //Вызов функции вывода в HTML списка дел
localStorage.setItem('toDo', JSON.stringify(toDoList));
}
}
temp
внутри функции записи HTML на чтения свойства из toDoList
:function toDoOut () { //Функция вывода в HTML списка дел
let outputData = ''; //Создание пустой переменной, в которую будем добавлять дела
for (var i = 0; i < toDoList.length; i++) {
if (toDoList[i].check == true) { //Проверка checkbox'а на его значение
.....
}