Как я могу получить значение из поля выбора и использовать его для получения ответа от API? - PullRequest
0 голосов
/ 24 августа 2018

Я хочу создать приложение с фактами случайных чисел, которое вызывается вводом числа.Приложение работает нормально, но я хочу иметь возможность выбрать годовой или математический факт, но он показывает мне только числовые факты, хотя я выбираю год / математику.API, который я использую, позволяет мне использовать этот формат (например, http://numbersapi.com/2001/year).. Кроме того, у меня нет ошибок в JSlint.

let fact = document.querySelector("#fact");
let factText = document.querySelector("#factText");
let numberInput = document.querySelector("#numberInput");
let selecter = document.querySelector("#numberSelect");

numberInput.addEventListener("input", getFactAjax);

function getFactAjax() {
  let xhr = new XMLHttpRequest();
  let number = numberInput.value;
  let numberType = "";
    switch(selecter.value){
      case 1:
        numberType = "";
        break;
      case 2:
        numberType = "/year";
        break;
      case 3:
        numberType = "/math";
    }
    xhr.open("GET", "http://numbersapi.com/"+ number + numberType);
    xhr.onload = function() {
        if(this.status == 200 && number != ""){
           fact.style.display = "block";
           factText.innerHTML = this.responseText;
           }
    };
    xhr.send();
};

1 Ответ

0 голосов
/ 24 августа 2018

input.value возвращает строку. Сравнение, выполненное с оператором строгого равенства ===, возвращает false для сравнения строк / int. Оператор switch использует строгое равенство. Таким образом, когда вы непосредственно передаете оператору switch строку, возвращаемую из input.value, используя числа в случаях, ни один из случаев не будет соответствовать данной строке, и все это в основном ничего не делает. Простое решение заключается в использовании строк в случаях, например case "1": вместо case 1:. «Правильное» решение - сначала преобразовать строку в число, например, используя parseInt.

Ссылка на ввод

Справочник по равенству

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