我正在为Celcius,Kelvin,Farenheit设计温度转换器,并一直停留在这个小问题上。我使用事件监听器来跟踪和解析我的输入,并且每当传入任何数字时,转换都将包括0。我有3个输入字段和3个占位符文本,因此如果我想转换摄氏温度,它们将转换为开尔文和法伦海特。但是,当我退格并将输入留空时,其他两个温度将返回NaN,据我了解,因为这些字段现在没有值。
因此,现在我想解决这个问题,将输入保留为空白,并将占位符文本重置为原始文本,而不是显示NaN。我尝试过if语句来捕获此特定问题,并且效果很好。现在,我可以在不同温度之间转换数字,甚至退格也可以重置占位符文本。一切正常,但数字为0。只要输入0,它就不会被解析并且什么也没有发生。
const celciusInput = document.querySelector("#celcius > input");
const fahrenheitInput = document.querySelector("#fahrenheit > input");
const kelvinInput = document.querySelector("#kelvin > input");
function celciusConverter() {
const cTemp = parseFloat(celciusInput.value) || "";
const fTemp = cTemp * (9 / 5) + 32;
const kTemp = cTemp + 273.15;
//condition if there is an empty string in the input, placeholder values would reset instead of returning NaN.
if (cTemp == "") {
fahrenheitInput.value = "";
kelvinInput.value = "";
} else {
fahrenheitInput.value = Math.round(fTemp); …Run Code Online (Sandbox Code Playgroud)javascript ×1