JavaScript输入框取值异常,mulfun函数始终显示0的问题求助
问题原因与修复方案
问题原因
你定义的num1和num2是在页面初始化时就获取了输入框的value,这时候输入框还没有任何用户输入,对应的value是空字符串。当空字符串参与乘法运算时,会被JavaScript自动转换为数字0,所以不管后续用户在输入框里填什么,mulfun函数始终用的是初始化时的0来计算,结果自然一直是0。而硬编码值时,你直接给了有效数字,所以函数能正常运行。
修复方法
把获取输入框值的代码移到mulfun函数内部,这样每次点击按钮时,才会获取当前输入框的最新值。另外,建议显式把输入值转换为数字类型,避免输入非数字内容时出现异常。
修改后的JavaScript代码:
function mulfun() { const num1 = Number(document.getElementById("firstNumber").value); const num2 = Number(document.getElementById("secondNumber").value); document.getElementById("result").innerHTML = num1 * num2; }
如果需要仅支持整数运算,也可以用parseInt(注意加上基数参数10避免进制解析问题):
function mulfun() { const num1 = parseInt(document.getElementById("firstNumber").value, 10); const num2 = parseInt(document.getElementById("secondNumber").value, 10); document.getElementById("result").innerHTML = num1 * num2; }
HTML部分无需修改,保持原有结构即可。
内容的提问来源于stack exchange,提问作者user2632160
相关产品推荐
相关产品推荐

