尝试在 if 语句中使用输入字段中的数字时获取 NaN

Getting NaN when trying to use a number from an input field in an if statment

我的部分反思有问题。我正在尝试获取 table 电池以显示在需要为汽车充电之前还剩多少英里。

我有一个输入单元格,用户可以在其中输入剩余的英里数 (50),然后进行计算 (50 - (10% buffer, 25) = 25 并显示在它旁边的单元格上。

我已经解决了这里的问题,我可以找到并尝试其他人尝试过的方法,但我现在真的走投无路了。

JSFiddle 在这里:https://jsfiddle.net/Coxy/gr5bcnsq/

密码是

var car_1_mtnc = document.getElementById('car-1-mtnc');
$(".confirm").click(function() {
var a =  parseInt(document.getElementById('car-1-cmra').value, 10);
var miles = a - 25;  

if ( a != Number ) {
    car_1_mtnc.textContent = "Please enter the miles left";
} else {
    car_1_mtnc.textContent = miles;
}
});

HTML

                                    <td><span id="car-1-cmra" class="answer" type="number"></span><input id="car-1-cmr" class="cmr" type="text" value="" placeholder="Enter Miles Left"></input></td>
                                    <td id="car-1-mtnc" class="mtnc"></td>

非常感谢任何指点,感谢您的宝贵时间。

您的代码有 2 个问题。

首先是您使用

#car-1-crma 获得 .value
document.getElementById('car-1-cmra').value

但那是 swap-out span 所以没有 .value - 您可以在跨度上使用 .textContent 或使用(现在)隐藏的输入

document.getElementById('car-1-cmr').value
document.getElementById('car-1-cmra').textContent
$("#car-1-cmra").text()

第二个是你正在使用

if (a != Number)

正如评论中提到的,要检查输入是否为数字,您可以使用

if (isNaN(a))

进行这两项更改可以修复您的 fiddle 英里范围计算:https://jsfiddle.net/4m8pa9dh (input value) and https://jsfiddle.net/4m8pa9dh/1/ (span textContent)