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

使用Javascript根据下拉选项计算数值无输出问题求助

问题排查与修复

你的代码里有几个关键问题导致选择下拉选项时无数值输出,逐一解决如下:

1. 事件绑定错误

HTML中select的onchange属性值必须是函数调用calcVals(),而非仅写函数名calcVals——只写函数名不会触发函数执行,必须加上括号:

<select id="old-english" name="oldenglish" onchange="calcVals()">

2. 元素ID格式错误

HTML里的id="old english"不符合规范,ID属性不能包含空格。将ID改为无空格格式(比如old-english),同时同步修改JS里的getElementById参数:

var e = document.getElementById("old-english");

3. HTML结构错误

代码里在<input type="number">后多了一个多余的</select>标签,会破坏DOM结构导致浏览器解析异常,直接删除该标签即可。

4. 数值一致性优化(可选)

你需求里的单价是13.95,但HTML里标注的是13,25€ per kilo,建议统一数值避免混淆。


修正后的完整代码

JavaScript部分

function calcVals() {
  var e = document.getElementById("old-english");
  var selFrst = e.options[e.selectedIndex].value;
  var totalCal = +selFrst * 13.95;
  // 保留两位小数优化显示效果
  document.getElementById("totalAmount").value = totalCal.toFixed(2);
}

HTML部分

<div>
  Red Leicester Cheese
  <br> 13.95€ per kilo
  <select id="old-english" name="oldenglish" onchange="calcVals()">
    <option value="0" disabled selected></option>
    <option value="1">1 Kilo</option>
    <option value="2">2 Kilos</option>
    <option value="3">3 Kilos</option>
    <option value="4">4 Kilos</option>
    <option value="5">5 Kilos</option>
  </select>
  <br><label for="weight">Enter Weight</label>
  <br>
  <input type="number">

  Textbox :
  <input name="totalAmount" id="totalAmount" type="text" readonly>
</div>

现在选择下拉选项后,就能正常计算并显示结果,比如选「3 Kilos」时会输出41.85。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 22:47:24