Скрипт не изменяет текст в <span> - PullRequest
0 голосов
/ 09 января 2019

У меня есть этот скрипт, который собирает названия мест через API из почтовых индексов. Почтовые индексы вставляются в поле, и соответствующее место отображается в <span>. Он отлично работает на нескольких моих веб-сайтах, но на одной странице (Wordpress, тема Kinetika) он не будет работать.

Сайт использует контактную форму 7, но, похоже, это не связано с этим (работает на других сайтах с CF7).

Я не понимаю, что вызывает эту проблему с этой конкретной темой. Есть предложения?

Попробовал изменить [текст ....] на <input type="text" id="poststed">. Без изменений.

Как вы можете видеть здесь, он работает просто отлично: https://js.do/code/275407

[text* postnummer id:postnummer class:postnummer]
<span id="poststed" style="font-weight: 700; color: #00ba00">POSTSTED</span>

<script>
    function validatePostalcode(postnummer) {
        if (postnummer.length < 4) {
            return;
        } else {
            var conn = new XMLHttpRequest();
            conn.onreadystatechange = function () {
                if (conn.readyState === XMLHttpRequest.DONE) {
                    var data = JSON.parse(conn.responseText);
                    document.getElementById('poststed').textContent = data.result;
                }
            };
            var url = 'https://fraktguide.bring.no/fraktguide/api/postalCode.json?pnr=' + postnummer + '&callback=?'; conn.open('GET', url, true); conn.send();
        }
    }
    var ele = document.getElementById('postnummer');
    ele.addEventListener('keyup', function (evt) {
        validatePostalcode(ele.value);
    });
</script>

1 Ответ

0 голосов
/ 10 января 2019

Решено!

Я изменил

if (conn.readyState === XMLHttpRequest.DONE) {

до

if (conn.readyState === 4) {

И теперь это работает! Я не уверен, почему это не проблема с другими темами WP, но по крайней мере это решило проблему для меня.

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