我在JavaScript中创建了这个临时转换器,它运行和计算得当,但我收到了一些“意外行为”,我很难理解为什么会发生这种情况。
正在发生的行为是,如果我单击Celsius或Fahrenheit文本框,它会自动生成值:-32 in Celsius textbox,32 in Fahrenheit textbox。从文本框中删除其中一个自动生成的值后,它将按如下方式进行适当转换:
100C它转换为212F,如果输入32F,则转换为0C。
这部分更多的是奖励,看看我是否可以转换华氏温度,摄氏温度和开尔文温度。如果您输入华氏度或摄氏度文本框中的值,它不会转换,但如果您将数字直接输入开尔文文本框,它将直接转换为其他2个测量值。
我是否需要循环或控制语句才能将Kelvin恰当地添加到此程序中?
表单标签名称是“转换器”这是代码:
function toCelsius() {
document.converter.fahrenheit.value =(document.converter.celsius.value * 9/5) + 32;
}
function toFahrenheit() {
document.converter.celsius.value = (document.converter.fahrenheit.value *5/9) -32;
}
function toKelvin(){
document.converter.celsius.value = document.converter.kelvin.value - 273.15;
document.converter.fahrenheit.value=((document.converter.kelvin.value - 273.15)*9/5)+32;
}
答案 0 :(得分:1)
公式为:
°F = °C x 9/5 + 32
°C = (°F - 32) x 5/9
这样:
function toFahrenheit() {
document.converter.celsius.value = (document.converter.fahrenheit.value - 32) * 5 / 9;
}
至于奖金问题,我认为您需要将处理函数附加到3个input
元素中的每一个(假设您正在使用这些元素)并相应地同步其他值。不需要循环。像这样:
<input id='c' type="number" onchange="converter_function('c', this.value)" />°C
http://jsfiddle.net/teyw4tah/2/
对于纯粹主义者: