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