Установка значений Label и Text с помощью javascript - получение Cannot set property of null error - PullRequest
0 голосов
/ 28 мая 2020

У меня есть представление MVC, в котором я пытаюсь установить значения определенных меток и текстовых полей в функции javascript. Я могу просто установить метку ИЛИ текстовое поле, но если я попытаюсь сделать и то, и другое, я получаю ошибку «Caanot Set Property of Null». Вот мое мнение:

<div id='content'>
    Id:<br />
    <label id="datasetId" style="width:140px" />
    <br />

    Label:<br />
    <input type="text" id="txtLabel" style="width:140px" />
    <br />
</div>

Затем у меня есть кнопка, которая вызывает javascript функцию с именем editDataSet, которая, в свою очередь, вызывает функцию js с именем SetData ():

<script>
    function editDataSet(e) {
        //some code
        SetData(existingRecord);
        //more code
    }

    function SetData(dataSet) {
        document.getElementById('datasetId').innerText = "test"; 
        document.getElementById('txtLabel').value = "3";//errors out here
    }

Когда я запускаю это, я получаю сообщение об ошибке, но если я закомментирую строку, она работает нормально. Если я закомментирую первую строку и оставлю вторую, она тоже будет работать нормально. Итак,

    function SetData(dataSet) {
        //document.getElementById('datasetId').innerText = "test";
        document.getElementById('txtLabel').value = "3";//now it works
    }

работает, как и

    function SetData(dataSet) {
        document.getElementById('datasetId').innerText = "test";
        //document.getElementById('txtLabel').value = "3";//this works too
    }

У кого-нибудь есть идеи?

1 Ответ

0 голосов
/ 28 мая 2020

Тег <label> требует закрывающего </label>.

<label id="datasetId" style="width:140px" /> недопустимо HTML.

Документы MDN на этикетке .

function setData() {
  document.getElementById('datasetId').innerText = "test";
  document.getElementById('txtLabel').value = "3";
}
<button onclick="setData()">Run Test</button>
<div id='content'>
  Id:<br />
  
  <!-- changed to valid label -->
  <label id="datasetId" style="width:140px"></label>
  
  <br /> Label:

  <br />
  <input type="text" id="txtLabel" style="width:140px" />
  <br />
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...