Возникли проблемы при сравнении целых чисел в javascript

#javascript

#javascript

Вопрос:

У меня возникли проблемы с функцией, которая сравнивает целые числа.

Я назначил входные данные и использовал метод parseInt, но метод сработал не так, как я ожидал. Я просмотрел разные решения, но безуспешно.

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

             <form>
                <label>QUESTION 4 <br /></label>
                <label for="q4">How long is the Pieterad, the most famous walking trail in Ashington?(In Kilometers)</label>
                <input type="text" id="q4" placeholder="Enter your answer here." />
                <button onclick="q4function()" type="button">Submit</button>
                <p id="q4Answer"></p>
            </form>

        function q4Funtion() {
            var a = parseInt(document.getElementById("q4").value, 10);

            if (a == 498)
                document.getElementById("q4Answer").innerHTML = "Great Success!";
            else if (a != 498)
                document.getElementById("q4Answer").innerHTML = "The answer was 498.";    
        }
  

Я вообще не получаю результата от этой функции. Я не уверен, что сделал неправильно.

Комментарии:

1. Что вы имеете в виду, «не работает»? Что происходит, и чего вы ожидали?

2. Проверьте консоль вашего браузера. Скорее всего, ваша форма отправляется, поэтому, возможно, добавьте event.preventDefault(); в свою функцию

3. Как вы отдельно проверили, что это была единственная функция без результата? и когда вы имеете в виду без результата, вы имеете в виду, что он выдает ответ ‘null’ или возвращает пустой?

4. если это одно, зачем снова проверять в ветке else, что вы ожидаете? if не будет 498, если вы уже туда попали 🙂

5. Я думаю, у вас просто опечатка — ваше имя функции q4Funtion , но вы вызываете q4function

Ответ №1:

Это работает, если вы правильно пишете «Функция» 🙂 Также обратите внимание на обработчики событий, а не на метод onclick.

 function q4Function() {
            var a = parseInt(document.getElementById("q4").value, 10);

            if (a == 498)
                document.getElementById("q4Answer").innerHTML = "Great Success!";
            else if (a != 498)
                document.getElementById("q4Answer").innerHTML = "The answer was 498.";    
        }
  

Ответ №2:

Скорее всего, ваша форма отправлена, что означает, что ваш код JavaScript не выполняется. Добавление этого предотвращает это:

 document.querySelector("form").addEventListener("submit", e => e.preventDefault());
  

Также убедитесь, что вы правильно пишете function :

 function q4Function() {...}