Почему это, если еще ничего не возвращается? Я новичок в Javascript - PullRequest
0 голосов
/ 10 июля 2020

Итак, вставлены 2 значения, все работает, за исключением случаев, когда вы вводите 0 для двух значений, которые должны выдавать предупреждение или консоль. Log Моя функция работает, за исключением той части, где проверяет оператор if else если значения равны 0 ...

Если вы вводите значения, происходит деление наибольшего числа на наименьшее число.

Но когда вы вводите 2 нуля, он должен выдавать предупреждение .

const button = document.querySelector("#deKnop");
button.addEventListener("click", deling);

function deling() {
  const getal1 = parseFloat(document.querySelector("#getal1").value);
  const getal2 = parseFloat(document.querySelector("#getal2").value);
  const output = document.querySelector(".vb"); {

  }

  if (getal1 === 0) {
    output.innerHTML = getal1 / getal2;
  }
  else if (getal1 === 0 && getal2 === 0) {
    console.log('niet nul zijn');
    alert("Je kan niet delen door 0!");
  }

  else if (getal2 === 0) {
    output.innerHTML = getal2 / getal1
  }

  else if (getal1 > getal2) {
    // console.log('getal 1 groter');
    output.innerHTML = getal1 / getal2;

  }

  else if (getal1 < getal2) {
    // console.log("getal 2 groter")
    output.innerHTML = getal2 / getal1

  }

  else if (getal1 === getal2) {
    output.innerHTML = getal1 / getal2

  }


}

const button = document.querySelector("#deKnop");
    button.addEventListener("click", deling);

    function deling() {
      const getal1 = parseFloat(document.querySelector("#getal1").value);
      const getal2 = parseFloat(document.querySelector("#getal2").value);
      const output = document.querySelector(".vb"); {

      }

      if (getal1 === 0) {
        output.innerHTML = getal1 / getal2;
      }

      else if (getal1 === 0 && getal2 === 0) {
        console.log('niet nul zijn');
        alert("Je kan niet delen door 0!");
      }

      else if (getal2 === 0) {
        output.innerHTML = getal2 / getal1
      }

      else if (getal1 > getal2) {
        // console.log('getal 1 groter');
        output.innerHTML = getal1 / getal2;

      }

      else if (getal1 < getal2) {
        // console.log("getal 2 groter")
        output.innerHTML = getal2 / getal1

      }

      else if (getal1 === getal2) {
        output.innerHTML = getal1 / getal2

      }


    }
<!DOCTYPE html>
<!-- saved from url=(0115)https://leren.vdab.be/pluginfile.php/4999/mod_scorm/imsmanifest/2/42935/objects/il_0_file_46437/JS_taak_deling.html -->
<html>

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=" UTF-8">

  <title>JS PF taak: deling</title>
  <style media="screen">
    label {
      display: inline-block;
      width: 100px;
    }

    div.vb {
      background-color: #CCFFCC;
      padding: 1em;
    }
  </style>

</head>

<body cz-shortcut-listen="true">
  <h1>Javascript PF taak: Deling</h1>
  <h3>Opdracht: </h3>
  <ul>
    <li>Lees twee getallen in. Deel het grootste door het kleinste en toon het resultaat in het <em>output element</em>.
    </li>
    <li>ook negatieve getallen zijn toegelaten</li>
    <li>herinner de gebruiker er aan dat je niet mag delen door 0. Waarschuw de gebruiker in een
      <em>berichtenvenster</em></li>
    <li>we veronderstellen dat de input echt een getal is, <em>valideren</em> moet je nog niet doen</li>
  </ul>
  <h3>Geteste topics</h3>
  <ul>
    <li>programmatielogica : selectie</li>
  </ul>
  <h3>Oplossing: </h3>

  <form name="frmDeling" id="frmDeling" method="get"
    action="https://leren.vdab.be/pluginfile.php/4999/mod_scorm/imsmanifest/2/42935/objects/il_0_file_46437/JS_taak_deling.html">
    <p>
      <label for="getal1">getal 1</label>
      <input type="text" name="getal1" id="getal1">
    </p>
    <p>
      <label for="getal2">getal 2</label>
      <input type="text" name="getal2" id="getal2">
    </p>
    <p>
      <button type="button" id="deKnop">Bereken deling</button>
    </p>
  </form>

  <div class="vb" id="output"></div>
  </body>
  </html>

1 Ответ

0 голосов
/ 10 июля 2020

Ваш parseFloat, вероятно, возвращает NaN, которое не равно нулю, когда пользователь оставил поле пустым.

Проверьте это:

console.log( parseFloat("") );
console.log( parseFloat(null) );
console.log( parseFloat(undefined) );

Попробуйте проверить, равно ли обрезанное необработанное значение "" (пустая строка).

if(document.querySelector("#getal1").value.trim()==="") alert("nicht richtig");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...