Почему этот простой вызов в JavaScript не работает? - PullRequest
0 голосов
/ 02 мая 2020

Я только начинаю с JavaScript, и у меня возникли некоторые проблемы, пытаясь понять, почему что-то работает не так, как должно. В этом конкретном случае я не понимаю, почему, если я вызываю функцию, которая вызывает другую функцию, в качестве параметра, вторая работает, а первая - нет. Если я вызываю непосредственно вторую функцию, то она тоже не работает. Таким образом, я нашел единственный способ заставить ее работать, вызывая вторую функцию через первую и заставляя вторую функцию также выполнять работу первой.

Может кто-нибудь сказать мне, где проблема и почему ?

function resultado(texto) {
  document.getElementById("mayor").innerHTML = texto;
}

function comparar() {
  var n1, n2, n3, texto;
  n1 = document.getElementById("n1").value;
  n2 = document.getElementById("n2").value;
  n3 = document.getElementById("n3").value;
  if (isNaN(n1) || isNaN(n2) || isNaN(n3)) {
    document.getElementById("mayor").innerHTML = "Deben ser números";
  }

  n1 = parseInt(n1);
  n2 = parseInt(n2);
  n3 = parseInt(n3);

  texto = "El mayor es: ";
  if (n1 < n2) {
    if (n2 < n3) texto += n3 + " ";
    else texto += n2 + " ";
  } else {
    if (n1 < n3) texto += n3 + " ";
    else texto += n1 + " ";
  }
  document.getElementById("mayor").innerHTML = texto;
  return texto;
}
<div id="fondo">
  <div id="contenido">
    <h1 id="titulo">El mayor de 3</h1>
    <p>Introduce 3 números enteros:</p>
    <label for="n1">Número 1: </label>
    <input value="0" name="n1" id="n1" size="4"><br>
    <label for="n2">Número 2: </label>
    <input value="0" name="n2" id="n2" size="4"><br>
    <label for="n3">Número 3: </label>
    <input value="0" name="n3" id="n3" size="4">
    <button type="button" onclick="document.resultado(comparar());">¿mayor?</button>
    <br>
    <p id="mayor"></p>
  </div>
</div>

1 Ответ

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

Удалить documentmento из onclick, это будет так onclick="resultado(comparar());"

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