Не удается прочитать свойство 'value' из undefined в HTMLTableElement. <'Anonymous'> Update - PullRequest
1 голос
/ 09 февраля 2020

У меня есть c # код в asp. net представлении: (Это создает ввод времени для меня с описанным классом)

Представление:

<td id="td01">@Html.TextBoxFor(m => m.Model1[nr_rows].Rozpoczecie, new { @class = "start", @type = "time" })</td>
<td id="td01">@Html.TextBoxFor(m => m.Model1[nr_rows].Zakonczenie, new { @class = "end", @type = "time" })</td>
<td id="td01">@Html.TextBoxFor(m => m.Model1[nr_rows].OdbiorGodzin, new { @class = "gethours", @type = "time" })</td>


<td id="td01">@Html.TextBoxFor(m => m.Model1[nr_rows].DniOdpracowania, new { @class = "additional_free",@type = "time", @readonly = true })</td>
<td id="td01">@Html.TextBoxFor(m => m.Model1[nr_rows].SaldoNadgodzin, new { @class = "overtime", @type = "time", @readonly = true })</td>

И у меня есть код, который выполняет различные вычисления для меня:

JavaScript

table.addEventListener('change', function (e) {
    const classList = e.target.classList;
    if (classList.contains('start') || classList.contains('end') || classList.contains('gethours')) {
        //retrieve the associated inputs
        const tr = e.target.parentNode.parentNode;
        const [additional_free, overtime] = [...tr.querySelectorAll('.additional_free,.overtime')];

        additional_free.value = overtime.value     <<<<<<<<<< this


    }
});

Хотя все работает, я получаю такой неизвестный для меня ошибка:

VM49: 85 Uncaught TypeError: Невозможно прочитать свойство 'значение' из неопределенного в HTMLTableElement. (: 85: 42)

Я добавлю, что данные в начале считываются из базы данных и устанавливаются в качестве начальных значений в этой таблице

Кто-нибудь знает, что происходит на

1 Ответ

1 голос
/ 09 февраля 2020

Недостаточно информации, чтобы полностью понять причины, но вы можете попробовать следующее:

const [additional_free, overtime] = [...tr.querySelectorAll('.additional_free,.overtime')];

try {
    additional_free.value = overtime.value  
} catch (err) {
    console.log(err);
    console.log(JSON.Stringify(additional_free));
    console.log(JSON.Stringify(overtime));
}

Пожалуйста, добавьте вывод в свой вопрос, чтобы мы могли помочь вам больше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...