You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript输入读取异常:输入数字返回NaN,请求排查原因

问题排查与解决

核心原因

你代码里的var first = parseInt(document.getElementById('numb').value, 10);是在页面加载完成时执行的,这时候输入框还没有任何输入内容,value是空字符串,parseInt("", 10)自然返回NaN。而且点击按钮的multiply函数里只是打印这个一开始就固定的first变量,并没有重新读取输入框的最新值,所以不管之后输入什么,结果都不会变。

修正后的代码

把获取输入框值的逻辑放到点击事件的函数内部,这样每次点击按钮时都会读取当前输入框的最新内容:

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Validation</h2>

<p>Please input a number between 1 and 10:</p>

<input id="numb">

<button type="button" id="mult">Submit</button>

<p id="demo"></p>

<script>

document.getElementById('mult').addEventListener('click', multiply);

function multiply() {
    // 每次点击时读取最新的输入值
    var first = parseInt(document.getElementById('numb').value, 10);
    console.log(first);
}

</script>
</body>
</html>

额外说明

  • 如果要处理输入非数字的情况,可以添加判断逻辑:
    function multiply() {
        var inputVal = document.getElementById('numb').value;
        var first = parseInt(inputVal, 10);
        if (isNaN(first)) {
            console.log("请输入有效的数字");
        } else {
            console.log(first);
        }
    }
    

内容的提问来源于stack exchange,提问作者Avi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 11:25:15