为何我的if条件未执行?附HTML/JavaScript代码求助
解决calcAmount6函数if条件不执行的问题
你的问题核心是输入框获取的value是字符串类型,直接做加法运算时会变成字符串拼接,而非数字相加。举个例子:如果amount6输入5000,amount7输入6000,userAmount5 + userAmount6得到的是字符串"50006000",转成数字后远大于12000,所以你的if条件永远不会触发。
只需要把获取到的输入值转换成数字类型,就能解决这个问题。这里提供几种常用的转换方式,同时还加了空输入的容错处理,避免出现NaN异常:
修改后的calcAmount6函数代码如下:
function calcAmount6(){ // 将输入值转换为数字类型 var userAmount5 = Number(document.getElementById("amount6").value); var userAmount6 = Number(document.getElementById("amount7").value); var oneLevel1 = 12000; // 处理输入为空/非数字的情况,默认设为0 userAmount5 = isNaN(userAmount5) ? 0 : userAmount5; userAmount6 = isNaN(userAmount6) ? 0 : userAmount6; if (userAmount5 + userAmount6 < oneLevel1) { document.getElementById("marginAmount6").textContent = "不合格!"; } else if (userAmount5 + userAmount6 >= oneLevel1) { document.getElementById("marginAmount6").textContent = Math.round(userAmount5 * 13 / 100) + (userAmount6 * 5 / 100) + "€"; } }
现在你可以测试一下:比如输入amount6=5000、amount7=6000,总和11000小于12000,这时候marginAmount6就会正确显示“不合格!”了。
内容的提问来源于stack exchange,提问作者Philippe Delestan
相关产品推荐
相关产品推荐

