JS脚本无法在HTML页面输出表单计算结果的修复方法
问题修复说明
你的代码存在3处导致运行异常的问题:
- 单选按钮DOM获取大小写不匹配:HTML里单选组的
name属性值是Nalog(首字母大写),JS中写的是全小写的nalog,无法正确获取到单选按钮组,触发JS报错 solve()函数缺少闭合的大括号,属于基础语法错误,整个函数无法被正常解析执行- 未做输入值的类型转换与空值兜底:输入框拿到的value默认是字符串类型,空输入时直接计算会得到
NaN的异常结果
修复后可直接运行的代码
<html lang="ru"> <head> <meta charset="utf-8"> <title>Калькулятор</title> </head> <body> <FORM NAME="Form1"> <p><b>Какая у вас ЗП?</b></p> <INPUT TYPE="number" id="salary" class="value" placeholder="Enter an integer" /> <p><b>Ваш подоходный налог 13%?</b></p> <INPUT TYPE="radio" name="Nalog" id="da" value="Yes">Да <INPUT TYPE="radio" name="Nalog" id="net" value="No">Нет <br>Посчитаем сумму налога? <INPUT TYPE ="button" value="Посчитать" onClick="solve();"> <p id="result"></p> </form> <script> var output = document.getElementById("result"); function solve() { // 输入值转数字,空输入兜底为0 var input = Number(document.getElementById("salary").value) || 0; output.innerHTML = ""; // 修正单选组名称的大小写匹配问题 if (document.Form1.Nalog[0].checked) { output.innerHTML = input * 0.13; } else { output.innerHTML = 0; } } // 补全函数缺失的闭合括号 </script> </body> </html>
运行效果说明
- 选中「Да(是)」且输入整数时,页面会展示输入薪资乘以13%的个税计算结果
- 选中「Нет(否)」、未选择任何单选按钮、未输入薪资值时,结果统一展示为0
- 修复后不会再出现JS报错、计算结果异常的问题
内容的提问来源于stack exchange,提问作者Daria
相关产品推荐
相关产品推荐

