同时使用Onkeyup和Onchange

时间:2018-06-02 11:40:24

标签: javascript

我有两个输入框,一个接受用户输入并将其与596相乘,然后在更新<span>的同时在第二个输入框中显示结果,并检查其PlanA或PlanB

function calculate() {
var ethBox = document.getElementById('eth').value; 
var myResult = ethBox * 596;
document.getElementById('usd').value = myResult.toFixed(2);

if(ethBox < 10){
document.getElementById('span').innerHTML ="PlanA";
    }else if(ethBox >= 11 && ethBox <=20){
document.getElementById('span').innerHTML ="PlanB";

    }
}

它有效。

但我也希望第二个输入框中的用户输入除以596并在第一个输入框中显示结果,同时用条件语句同时更新<span>

function reverse() {
var usdBox = document.getElementById('usd').value; 
var myResult = usdBox / 596;
document.getElementById('eth').value = myResult.toFixed(2);

}

此代码更改了第一个输入框的值,但它不会更新<span>

输入框

<input id="eth" onkeyup="calculate();" type="text">

<input id="usd" onkeyup="reverse();"  type="text">

跨度 <span id="span"></span>

我还尝试使用onkeyuponchange作为第一个无法正常工作的输入框

1 个答案:

答案 0 :(得分:3)

您还需要在反向功能中添加以下代码。添加了一个common()方法来执行两种方法共有的任务。

    var ethBox = document.getElementById('eth').value; 
    if(parseInt(ethBox,10) < 10){
        document.getElementById('span').innerHTML ="PlanA";
    }else if(ethBox >= 11 && ethBox <=20){
        document.getElementById('span').innerHTML ="PlanB";
    }

<script>
function calculate() {
  var ethBox = document.getElementById('eth').value; 
  var myResult = ethBox * 596;
  document.getElementById('usd').value = myResult.toFixed(2);

  common();
}

function reverse() {

  var usdBox = document.getElementById('usd').value; 
  var myResult = usdBox / 596;
  document.getElementById('eth').value = myResult.toFixed(2);

  common();
}

function common() {
 var ethBox = document.getElementById('eth').value; 
  if(parseInt(ethBox,10) < 10){
  document.getElementById('span').innerHTML ="PlanA";
  }else if(ethBox >= 11 && ethBox <=20){
  document.getElementById('span').innerHTML ="PlanB";
  }
}
</script>
<input id="eth" onkeyup="calculate();" type="text">

<input id="usd" onkeyup="reverse();"  type="text">

<span id="span"></span>