Варианты ссылок Javascript на else, если - PullRequest
0 голосов
/ 17 декабря 2018

Я немного озадачен тем, почему мой код не работает.Я очень новичок и мне очень интересно узнать, где я ошибся!Я хочу время от времени, какой бы вариант я не выбрал, var z, но не могу заставить его работать.

Пока это мой код:

<td><select>


  <option id="VAS" value="70">VAS</option>
  <option id="VTS" value="80">VTS</option>
  <option id="VAF" value="60">VAF</option>
  <option id="VGS" value="40">VGS</option>
  </select></td>
  <td>
   <input type="number" id="number" name="number">
  </td>
  <td>

<button onclick="myFunction()"> Total Value</button>
<br/>
<br/>


  <p id="value"></p>
  <script>
  function myFunction() {
  var y = document.getElementById("VAS").value;
  var z = document.getElementById("number").value;
  var a = document.getElementById("VGS").value;
  var c = document.getElementById("VAF").value;
  var d = document.getElementById("VTS").value;


  if (value == VGS) {
  var x = a * z;
  document.getElementById("value").innerHTML = x;
  }
  else if (value == VAS) {
  var x = y * z;
  document.getElementById("value").innerHTML = x;
  }




  }
  </script>

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Вам необходимо сравнить значение выбора, а не значения параметров.Вот как я исправил ваш код JavaScript:

function myFunction() {
    var a = parseInt(document.getElementById("VAS").parentNode.value);
    var z = parseInt(document.getElementById("number").value);
    var x = a * z;
    document.getElementById("value").innerHTML = x;
}

Полностью рабочая демонстрация:

function myFunction() {
    var a = parseInt(document.getElementById("VAS").parentNode.value);
    var z = parseInt(document.getElementById("number").value);
    var x = a * z;
    document.getElementById("value").innerHTML = x;
}
<td>
  <select>


    <option id="VAS" value="70">VAS</option>
    <option id="VTS" value="80">VTS</option>
    <option id="VAF" value="60">VAF</option>
    <option id="VGS" value="40">VGS</option>
  </select>
</td>
<td>
  <input type="number" id="number" name="number">
</td>
<td>

  <button onclick="myFunction()"> Total Value</button>
  <br/>
  <br/>


  <p id="value"></p>

РЕДАКТИРОВАТЬ:

Чтобы сделать это автоматически, используйте oninput в числовом поле следующим образом:

<input type="number" id="number" name="number" oninput="myFunction()" />

Демо:

function myFunction() {
    var a = parseInt(document.getElementById("VAS").parentNode.value);
    var z = parseInt(document.getElementById("number").value);
    var x = a * z;
    document.getElementById("value").innerHTML = x;
}
<td>
  <select>


    <option id="VAS" value="70">VAS</option>
    <option id="VTS" value="80">VTS</option>
    <option id="VAF" value="60">VAF</option>
    <option id="VGS" value="40">VGS</option>
  </select>
</td>
<td>
  <input type="number" id="number" name="number" oninput="myFunction()">
</td>
<td>
  <br/>
  <br/>


  <p id="value"></p>
0 голосов
/ 17 декабря 2018

Ваши значения являются числами, поэтому значение никогда не будет содержать VAS.Кроме того, строки должны быть заключены в кавычки, поэтому ваш оператор if будет выглядеть так:

if(a == "VAS")

Но значение содержит числа, поэтому на самом деле это должно быть:

if(a == "40")

Примечание: все значения являются строками, если вы не приведете их.

...