Javascript 在一个字段中输入另一个字段后自动获取值

Javascript 在一个字段中输入另一个字段后自动获取值,javascript,jquery,Javascript,Jquery,我试图创建一个usd-to-inr转换器,但问题是当我在一个字段中输入时,它不会在另一个字段中自动转换。我尝试使用onblur,但只有当我在数字字段工作时使用我的键进行递增或递减时,它才起作用。我不知道是什么原因导致只有键的递增和递减起作用 <!DOCTYPE html> <html> <head> <title>Currency Converter in Javascript</title> &

我试图创建一个usd-to-inr转换器,但问题是当我在一个字段中输入时,它不会在另一个字段中自动转换。我尝试使用onblur,但只有当我在数字字段工作时使用我的键进行递增或递减时,它才起作用。我不知道是什么原因导致只有键的递增和递减起作用

<!DOCTYPE html>
<html>
    <head>
        <title>Currency Converter in Javascript</title>
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
    </head>
    <body>
        <div class="container">
            <br><br>
            <h1 style="text-align: center;">Currency Converter</h1>
            <form id="myForm">
                <br><br>
                <label for="Base Currency">Base Currency</label>

                <br>
                <div class="form-group">
                    <input type="number" class="form-control" id="baseNumber" value="1" onblur="curr()">
                </div>
                <label for="Target Currency">Target Currency</label>
 
                <br>
                <div class="form-group">
                    <input  class="form-control" id="targetNumber">
                </div>
            </form>
        </div>
    </body>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <script src="script.js"></script>
</html>

当我在构建历史汇率时,我在我的项目中遇到了同样的问题。通过在输入html标记中使用onkeyup事件,您可以像下面的代码一样进行操作。希望对你有很大帮助

var amountBTC=document.getElementById(“amountBTC”);
var amountUSD=document.getElementById(“amountUSD”);
var amountNGN=document.getElementById(“amountNGN”);
var currentRateUSD=1.0;
var currentRateNGN=385.69;
var currentRateBTC=0.000094;
功能转换金额(货币){
var x=document.getElementById(“选择”).selectedIndex;
var y=document.getElementById(“选择”).options;
如果(y[x].text==“卖出”){
var BTC=parseFloat(currentRateBTC);
var NGN=parseFloat(currentRateNGN);
var USD=浮动汇率(当前汇率USD);
fx.base=“美元”;
外汇汇率={
“BTC”:BTC,
“NGN”:NGN,
“美元”:美元
}
如果(货币=“BTC”){
amountUSD.value=fx.convert(amountBTC.value,{from:“BTC”,to:“USD”});
amountNGN.value=fx.convert(amountBTC.value,{from:“BTC”,to:“NGN”});
}其他条件(货币=“美元”){
amountBTC.value=fx.convert(amountUSD.value,{from:“USD”,to:“BTC”});
amountNGN.value=fx.convert(amountUSD.value,{from:“USD”,to:“NGN”});
}其他条件(货币=“NGN”){
amountUSD.value=fx.convert(amountNGN.value,{from:“NGN”,to:“USD”});
amountBTC.value=fx.convert(amountNGN.value,{from:“NGN”,to:“BTC”});
}
}如果(y[x].text==“购买”),则为else{
var BTC=parseFloat(currentRateBTC);
var NGN=parseFloat(currentRateNGN);
var USD=浮动汇率(当前汇率USD);
fx.base=“美元”;
外汇汇率={
“BTC”:BTC,
“NGN”:NGN,
“美元”:美元
}
如果(货币=“BTC”){
amountUSD.value=fx.convert(amountBTC.value,{from:“BTC”,to:“USD”});
amountNGN.value=fx.convert(amountBTC.value,{from:“BTC”,to:“NGN”});
}其他条件(货币=“美元”){
amountBTC.value=fx.convert(amountUSD.value,{from:“USD”,to:“BTC”});
amountNGN.value=fx.convert(amountUSD.value,{from:“USD”,to:“NGN”});
}其他条件(货币=“NGN”){
amountUSD.value=fx.convert(amountNGN.value,{from:“NGN”,to:“USD”});
amountBTC.value=fx.convert(amountNGN.value,{from:“NGN”,to:“BTC”});
}
}
}
函数转换器金额到TC_USD_NGN(从,到,金额){
var convertedAmount=(至/自)*金额;
返回转换装载;
}
函数计算百分比(百分比,num){
收益率(百分比/100)*num;
}
(函数(根,未定义){
var fx=功能(obj){
返回新的fxWrapper(obj);
};
fx.version='0.2';
var fxSetup=root.fxSetup | |{
费率:{},
基数:“”
};
fx.rates=fxSetup.rates;
fx.base=fxSetup.base;
fx.settings={
from:fxSetup.from | | fx.base,
至:fxSetup.to | | fx.base
};
var convert=fx.convert=函数(val,opts){
if(typeof val==='object'&&val.length){
对于(变量i=0;i

买入或卖出(必需的)卖出买入

美元金额

奈拉金额

比特币金额

function curr(){
  // some variables

  var baseCurrency = 'USD';

  var baseNumber = 1;

  var targetCurrency = 'INR';

  var targetNumber;

  var url;

  currencyConverter(baseCurrency, baseNumber,targetCurrency,targetNumber)

  // get base currency value

  $("#base").change(function () {
    // base currency

    baseCurrency = $(this).children("option:selected").val();

    // call currencyConverter function

    currencyConverter(baseCurrency,baseNumber,targetCurrency,targetNumber)


  });

  // get base currency number

  $("#baseNumber").change(function(){

    // base number

    baseNumber = $(this).val()

    // call currencyConverter function

    currencyConverter(baseCurrency,baseNumber,targetCurrency,targetNumber)

  })

  // get target currency value

  $("#target").change(function () {
    // target currency

    targetCurrency = $(this).children("option:selected").val();

    // call currencyConverter function

    currencyConverter(baseCurrency,baseNumber,targetCurrency,targetNumber)

  });

  // get target currency number

  $("#targetNumber").change(function(){

    // target number

    targetNumber = $(this).val()

    // call currencyConverter function

    currencyConverter2(baseCurrency,baseNumber,targetCurrency,targetNumber)

  })


  // function to convert BaseCurrency to TargetCurrency

  function currencyConverter(baseCurrency, baseNumber,targetCurrency,targetNumber)
  {
      // api url

      url = "https://api.exchangeratesapi.io/latest?symbols="+targetCurrency+"&base="+baseCurrency

      // make a get request to api

    

      $.get(url,function(data){
          console.log(data.rates)

          for (let [key, value] of Object.entries(data.rates)) {
            
            var result = value * baseNumber

           $("#targetNumber").val(result)

          }
          console.log(`data.rates.${targetCurrency}`)
      })
  }

  function currencyConverter2(baseCurrency, baseNumber,targetCurrency,targetNumber)
  {
      // api url

      url = "https://api.exchangeratesapi.io/latest?symbols="+baseCurrency+"&base="+targetCurrency

      // make a get request to api

      $.get(url,function(data){
          console.log(data.rates)

          for (let [key, value] of Object.entries(data.rates)) {

            console.log(value)
            
            var result = value * targetNumber

           $("#baseNumber").val(result)

          }
          console.log(`data.rates.${targetCurrency}`)
      })
  }
}
   <input type="number" class="form-control" id="baseNumber" value="1" onkeypress="curr()">
(function() {
    // your code
})();