【问题标题】:How to switch functions javascript如何切换功能 javascript
【发布时间】:2017-03-23 18:28:47
【问题描述】:

我想做点小东西。当您输入摄氏温度时,程序应计算华氏温度,反之亦然。但是当我输入摄氏度并单击按钮时,反之亦然。由于我是初学者,我真的不知道如果 function1 激活了如何不执行 function2。我的 javascript 看起来像这样:

JS:

function Omrekenen() {
  var celsius = document.getElementById('Celsius').value;
  var fahrenheit = document.getElementById('Fahrenheit').value;


  var r1 = (celsius * 1.8) + 32;
  var r2 = (fahrenheit / 1.8) - 32;
}

function Leeg1() {
  document.getElementById('Fahrenheit').value = "";
}

function Leeg2() {
  document.getElementById('Celsius').value = "";
}
<div class="Oefening">
  <h1 class="Titel">Oefening 3</h1>
  Celsius: <input type="number" id="Celsius" placeholder="°C" onkeyup=Leeg1()> Fahrenheit: <input type="number" id="Fahrenheit" placeholder="°F" onkeyup="Leeg2()"><br />
  <input type="button" id="button3" value="Zet om" onclick="Omrekenen(); Vast();" class="Button">
</div>

【问题讨论】:

  • 使用if 语句检查哪个输入有值,哪个输入为空。

标签: javascript function switch-statement


【解决方案1】:

这是执行此操作的一种方法。

请注意,我正在检查输入值的长度。在这种情况下,您无法检查真实性 (if (celsius) ...),因为 0 的值是有效的,但会评估为假。检查长度应该适用于每种情况。

function Omrekenen() {
  var celsius = document.getElementById('Celsius').value;
  var fahrenheit = document.getElementById('Fahrenheit').value;

  if (celsius.length !== 0) {
      document.getElementById('Fahrenheit').value = (celsius * 1.8) + 32;      
  } else if (fahrenheit.length !== 0) {
      document.getElementById('Celsius').value = (fahrenheit / 1.8) - 32;          
  }
  
}

function Leeg1() {
  document.getElementById('Fahrenheit').value = "";
}

function Leeg2() {
  document.getElementById('Celsius').value = "";
}
<div class="Oefening">
  <h1 class="Titel">Oefening 3</h1>
  Celsius: <input type="number" id="Celsius" placeholder="°C" onkeyup=Leeg1()> Fahrenheit: <input type="number" id="Fahrenheit" placeholder="°F" onkeyup="Leeg2()"><br />
  <input type="button" id="button3" value="Zet om" onclick="Omrekenen();" class="Button">
</div>

【讨论】:

    【解决方案2】:

    您也可以使用状态变量,但在这种情况下您还需要处理粘贴操作。

    <script>
    var isCalculatingCelsius;
    function Omrekenen()
    {
    
      var celsius = document.getElementById('Celsius').value;
      var  fahrenheit = document.getElementById('Fahrenheit').value;
    
    
      if (isCalculatingCelsius){ 
        document.getElementById('Celsius').value = (fahrenheit / 1.8) - 32;
      } else {
        document.getElementById('Fahrenheit').value = (celsius * 1.8) + 32;
      }
    }
    
    function Leeg1(){
      isCalculatingCelsius = false;
      document.getElementById('Fahrenheit').value = "";
    }
    
    function Leeg2(){
      isCalculatingCelsius = true;
      document.getElementById('Celsius').value = "";
    }
    
    </script>
    <div class="Oefening">
      <h1 class="Titel">Oefening 3</h1>
      Celsius: <input type="number" id="Celsius" placeholder="°C" onkeyup="Leeg1()">
      Fahrenheit: <input type="number" id="Fahrenheit" placeholder="°F" onkeyup="Leeg2()"><br />
      <input type="button" id="button3" value="Zet om" onclick="Omrekenen()" class="Button">
    </div>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-18
      • 1970-01-01
      • 2019-12-01
      • 1970-01-01
      • 2016-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多