Javascript 如何使此转换函数在两个方向上工作?
我是JS新手,我很难只用输入完成转换器,我解释了这个问题! 我们有两个输入,米和英尺。当我把一个数字传输到英尺时,我得到的结果是米。我想对米做同样的思考。反之亦然Javascript 如何使此转换函数在两个方向上工作?,javascript,html,input,converters,Javascript,Html,Input,Converters,我是JS新手,我很难只用输入完成转换器,我解释了这个问题! 我们有两个输入,米和英尺。当我把一个数字传输到英尺时,我得到的结果是米。我想对米做同样的思考。反之亦然 let metresEl=document.getElementById('InputMeters'); 功能长度转换器(valNum){ metresEl.value=valNum/3.2808; } 脚 米 您可以在LengthConvertor函数中添加另一个参数,表示输入单位(米或英尺),并使用if在函数内部进行相应转换
let metresEl=document.getElementById('InputMeters');
功能长度转换器(valNum){
metresEl.value=valNum/3.2808;
}
脚
米
您可以在LengthConvertor
函数中添加另一个参数,表示输入单位(米或英尺),并使用if
在函数内部进行相应转换
function LengthConverter(valNum, inputUnit) {
if(inputUnit === 'feet')
metresEl.value = valNum/3.2808;
if(inputUnit === 'meter')
feetsEL.value = valNum * 3.2808;
}
<div class="container">
<div class="form-group">
<label>Feet</label>
<input type="number" id="inputFeet" placeholder="Feet" oninput="LengthConverter(this.value,"feet")" onchange="LengthConverter(this.value,"feet")" >
</div>
<div class="form-group">
<label>Metres</label>
<input type="number" id="inputMetres" placeholder="Metres" oninput="LengthConverter(this.value,"meter")" onchange="LengthConverter(this.value,"meter")" >
</div>
</div>
函数长度转换器(数值,输入单位){
如果(输入单位==‘英尺’)
metresEl.value=valNum/3.2808;
如果(输入单位=='meter')
feetsEL.value=valNum*3.2808;
}
脚
米
添加了反向转换:
let metresEl=document.getElementById('InputMeters');
let feetEl=document.getElementById('inputfeets');
功能测力计(valNum){
metresEl.value=valNum/3.2808;
}
功能度量英尺(valNum){
feetEl.value=3.2808*valNum;
}
脚
米
您可以在每个输入中添加一个元素。AddEventListener
,当它有机会得到它的值时,转换并输入正确的输入
let metresEl=document.getElementById('InputMeters');
let feetsEl=document.getElementById('inputFeets');
metresEl.addEventListener(“更改”,您的代码);
feetsEl.addEventListener(“更改”,您的代码);
例如,如果米输入发生变化,您将转换为feets并添加到feets输入。谢谢您的回答您的代码工作得非常完美,非常清晰。@Furax如果您想说谢谢,请向上投票posti think使用第二个参数,如ID,它非常强大,如果我有多个输入,我选择此选项。这比有很多功能要好。您好,谢谢您的回答,但是代码不起作用<代码>metresEl.addEventListener('change',valNum=>metresEl.value=valNum/3.2808);feetsEl.addEventListener('change',valNum=>feetsEl.value=valNum*3.2808)我这么做了,但我没有看到比这更好的。我建议你阅读一下如何创建一个。你原来的问题中有太多不相关的细节。我已经编辑了这些,以展示如何用更少的代码(最少的代码)问相同的问题