使用 JavaScript 的温度转换器
Temp Converter Using JavaScript
我在 JavaScript 中创建了这个临时转换器,它可以正常运行和计算,但我收到一些 "unexpected behavior" 并且我正在努力理解它发生的原因。
发生的行为是,如果我单击摄氏度或华氏度文本框,它会自动生成值:摄氏度文本框为 -32,华氏度文本框为 32。一旦我从文本框中删除了一个自动生成的值,它就会像这样适当地转换:
100C 将转换为 212F,如果输入 32F,它将转换为 0C。
这部分更像是一个额外的奖励,看看我是否可以将所有 3 个温度测量值转换为华氏度、摄氏度和开尔文。如果您在华氏度或摄氏度文本框中输入一个值,它不会转换,但如果您直接在开尔文文本框中输入一个数字,它会自动转换为其他 2 个测量值。
我是否需要循环或控制语句来将 Kelvin 适当地添加到该程序中?
表单标签名称是 "converter" 代码如下:
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;
}
公式为:
°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/
对于纯粹主义者:
我在 JavaScript 中创建了这个临时转换器,它可以正常运行和计算,但我收到一些 "unexpected behavior" 并且我正在努力理解它发生的原因。
发生的行为是,如果我单击摄氏度或华氏度文本框,它会自动生成值:摄氏度文本框为 -32,华氏度文本框为 32。一旦我从文本框中删除了一个自动生成的值,它就会像这样适当地转换:
100C 将转换为 212F,如果输入 32F,它将转换为 0C。
这部分更像是一个额外的奖励,看看我是否可以将所有 3 个温度测量值转换为华氏度、摄氏度和开尔文。如果您在华氏度或摄氏度文本框中输入一个值,它不会转换,但如果您直接在开尔文文本框中输入一个数字,它会自动转换为其他 2 个测量值。
我是否需要循环或控制语句来将 Kelvin 适当地添加到该程序中?
表单标签名称是 "converter" 代码如下:
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;
}
公式为:
°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/
对于纯粹主义者: