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

JavaScript如何根据下拉选框多选项值更新表单字段并计算长方体体积

解决方案

核心修改逻辑是在尺寸选择触发函数pilihUkuran中增加预设尺寸的解析、计算逻辑,同时修正原有代码的不规范部分,具体修改如下:

1. 替换原有JS代码

// 页面加载完成后自动计算默认选中尺寸的体积
window.onload = function() {
  pilihUkuran();
}

function pilihUkuran() {
  const ukuranSelect = document.getElementById("ukuran");
  const customInputArea = document.getElementById("customukuran1");
  const selectedValue = ukuranSelect.value;

  // 简化自定义输入区域显隐逻辑,无需逐个匹配预设值
  customInputArea.style.visibility = selectedValue === "custom" ? "visible" : "hidden";

  // 预设尺寸场景自动计算体积
  if (selectedValue !== "custom") {
    // 将尺寸字符串按x分割为长宽高三个数值,调用已有的mult函数计算
    const [panjang, lebar, tinggi] = selectedValue.split('x').map(Number);
    mult(panjang, lebar, tinggi);
  } else {
    // 切换到自定义模式时清空结果,等待用户输入
    document.getElementById('rupiah').value = '';
  }
}

function mult(pj, lb, tg) {
  // 增加非空判断,避免输入不全时显示NaN
  if (pj && lb && tg) {
    const hasil = Number(pj) * Number(lb) * Number(tg);
    document.getElementById('rupiah').value = hasil;
  } else {
    document.getElementById('rupiah').value = '';
  }
}

2. 修正HTML非法嵌套问题

原有代码将自定义输入的<input>标签嵌套在了<select>标签内,不符合HTML规范,可能导致输入框交互异常,请将自定义输入区域的代码替换为如下内容:

<div id="customukuran1" style="visibility: hidden;">
  <input class="customp" id="custom_panjang" onkeyup="mult(this.value,document.getElementById('custom_lebar').value,document.getElementById('custom_tinggi').value);" name="custom_panjang" type="number" placeholder="Panjang (cm)">

  <input class="customl" id="custom_lebar" onkeyup="mult(document.getElementById('custom_panjang').value,this.value,document.getElementById('custom_tinggi').value);" name="custom_lebar" type="number" placeholder="Lebar (cm)">

  <input class="custom3" id="custom_tinggi" onkeyup="mult(document.getElementById('custom_panjang').value,document.getElementById('custom_lebar').value,this.value);" name="custom_tinggi" type="number" placeholder="Tinggi (cm)">
  <br>
</div>

优化说明

  • 简化了冗余的条件判断,后续新增预设尺寸只需在select中加option即可,无需修改JS逻辑
  • 增加了参数校验,避免出现非数字的异常结果
  • 页面初始化自动填充默认预设尺寸的计算结果,无需用户手动触发
  • 切换自定义/预设模式时自动清空上一次的结果,逻辑更符合使用习惯

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 22:06:03