Dave the Golfer Ответов: 1

Установка значения HTML-поля с помощью javascript приводит к нулевой ошибке


Я пытаюсь установить значение поля ввода HTML (номер типа) всякий раз, когда идентификатор значения поля со списком изменяется с помощью JavaScript (onchange).
Я делаю это на двух разных HTML-страницах.
Одна из первых страниц, коды JavaScript работают, из которых ниже приводится выдержка (Примечание: переменная hc устанавливается правильно в виде числа)
        xhttp.onreadystatechange = function() {
            if (xhttp.readyState === 4) {
                if (xhttp.status === 200) {
                    var hc = this.responseText;
                    hc = hc.replace(/[^0-9]/g, "");
                    document.getElementById("HC").value = hc;
//                    loads handicap to player handicap id
                } else {
                    // not OK
                    alert('failure!');
                }
            }

        };

Однако, если я использую аналогичный код для ElementID HCID, я получаю ошибку "Uncaught TypeError: не удается установить свойство 'value' null" для строки
document.getElementById("HCID").value = hc;
Опять же значение для hc устанавливается правильно.
Если я удалю "" вокруг идентификатора элемента, то код будет работать. Измените код следующим образом

xhttp.onreadystatechange = function() {
    if (xhttp.readyState === 4) {
        if (xhttp.status === 200) {
            var hc = this.responseText;
            hc = hc.replace(/[^0-9]/g, "");
            document.getElementById(HCID).value = hc;
            // loads handicap to player handicap id
        } else {
            // not OK
            alert('failure!');
        }
    }
};


Почему это происходит?
Как вы можете догадаться, я новичок в JavaScript.

Что я уже пробовал:

Как можно догадаться по вопросу, который я попытался добавить "" или удалить их

1 Ответов

Рейтинг:
5

MadMyche

Без HTML-кода страницы, имеющей эту проблему, я не могу быть уверен, но; похоже, что рассматриваемая страница не имеет элемента с идентификатором="HCID"

Первое, что я бы сделал, это зашел на страницу view-source и поискал HCID, чтобы увидеть, действительно ли он там есть и в каком контексте он появляется


Dave the Golfer

Спасибо за это . Я понял, что HCID-это переменная, которая устанавливается в идентификатор, поэтому не требует "".
более ранние наборы JavaScript var HCID = 'PHC'+i;
Идентификаторы элементов PHC1 PHC2 и т. д.