Ошибка: Невозможно прочитать свойства нулевого чтения "checked"

У меня проблемы с полным подключением кнопки отправки в моем django-приложении, кажется, что JS-функция не понимает, какие отмеченные флажки искать Все, что возвращает консоль, это "cannot read properties of null, reading "checked" Я предполагаю, что это что-то с определением функции, но я не могу заставить ее работать

Вот код:

В части:

document.getElementById(this.id).checked

document.getElementById(this.id) оценивает null, у которого нет никаких свойств, отсюда и исключение, которое вы получаете. Вы фактически делаете null.checked, что не сработает.

Похоже, что вы пытаетесь выполнить итерацию по флажкам и определить, установлены они или нет. Я уверен, что this внутри написанной вами функции будет просто ссылаться на объект window, поэтому вызов this.id не даст вам идентификатор флажка. На самом деле вы уже получили все флажки (вы итерируете над ними!), поэтому нет необходимости получать каждый из них вручную. Просто сделайте:

listItems.each(function(listItem) {
    if (listItem.checked) {
        checkedListItems.push(getTaskId(listItem.id));
        console.log(checkedListItems);
    }
})

Обратите внимание, что функция принимает в качестве аргумента отдельный listItem (названный запутанно, поскольку на самом деле это флажки, но я следую вашей номенклатуре), над которым each в данный момент идет итерация. Это то, что вам нужно.

Попробуйте добавить дочерний комбинатор ('>') к селектору элемента, используемому в первой строке функции submit_delete:

var listItems = $("#list li > input");

- или используйте более точный селектор собственного изобретения.

После публикации появляются элементы-потомки input от .list li формы <input size='3'>, которые не имеют атрибута id. Обработка их в each возвращает null из getElementById и выдает ошибку, что checked не может быть свойством null.

О each

Функция

JAuery each запускает свой обратный вызов со значением this, установленным для элемента, обрабатываемого во время итерации. Элемент также передается обратному вызову в качестве второго аргумента. Данные элементы в HTML должны иметь уникальные значения id:

  • Для элементов, на которые ссылается this, имеющих значения id, использование this для элемента проще, чем вызов getElementById(this.id).

  • Для элементов (на которые ссылаются this), не имеющих идентификатора, !this.id) является более простым условным выражением, чем getElementById(this.id)===null.

  • Отфильтровывание элементов, которые не должны быть зацеплены во время выбора, предпочтительнее, чем отфильтровывание их позже.

Вернуться на верх