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

如何用JavaScript实现HTML下拉选框联动JSON数据填充输入框

没问题,我帮你搞定这个需求!咱们一步步来,先把逻辑理清楚:当用户选中下拉框的选项时,根据选项的value值去匹配预先准备好的JSON数据,然后把对应的数据填充到输入框里。我给你完整的可运行代码示例,你直接套用就行:

完整实现方案

1. 完善HTML结构

首先得补充需要填充的input输入框(这里我假设你要填充套餐描述、价格、有效期三个字段,你可以根据实际需求调整):

<select name="bundle_typeCode" id="bundle_typeCode" class="form-control">
  <option value="153">200min Onnet Voice</option>
  <option value="101">1GB Data Bundle</option>
  <option value="162">5GB Night & Weekend Data Bundle</option>
  <option value="102">3GB Data Bundle</option>
</select>

<!-- 示例输入框,可按需修改数量和属性 -->
<input type="text" id="bundle_desc" placeholder="套餐描述">
<input type="text" id="bundle_price" placeholder="套餐价格">
<input type="text" id="bundle_validity" placeholder="有效期">

2. 准备对应JSON数据

把每个套餐的详细数据整理成JSON对象,用select的value值作为key,这样能快速定位到对应数据:

const bundleData = {
  "153": {
    desc: "200分钟网内通话套餐",
    price: "19.99元",
    validity: "30天"
  },
  "101": {
    desc: "1GB通用流量套餐",
    price: "29.99元",
    validity: "30天"
  },
  "162": {
    desc: "5GB夜间&周末专属流量套餐",
    price: "14.99元",
    validity: "30天"
  },
  "102": {
    desc: "3GB通用流量套餐",
    price: "49.99元",
    validity: "30天"
  }
};

3. 编写JavaScript事件逻辑

给select控件添加change事件监听,选中选项时自动填充数据,还可以加个页面加载时的默认填充逻辑:

// 获取页面元素
const bundleSelect = document.getElementById('bundle_typeCode');
const descInput = document.getElementById('bundle_desc');
const priceInput = document.getElementById('bundle_price');
const validityInput = document.getElementById('bundle_validity');

// 下拉框选中变化时触发的逻辑
bundleSelect.addEventListener('change', function() {
  const selectedValue = this.value;
  const selectedBundle = bundleData[selectedValue];
  
  // 如果找到对应数据就填充,否则清空输入框
  if (selectedBundle) {
    descInput.value = selectedBundle.desc;
    priceInput.value = selectedBundle.price;
    validityInput.value = selectedBundle.validity;
  } else {
    descInput.value = '';
    priceInput.value = '';
    validityInput.value = '';
  }
});

// 可选:页面加载完成时自动填充第一个选项的数据
window.addEventListener('load', function() {
  const defaultVal = bundleSelect.value;
  const defaultBundle = bundleData[defaultVal];
  if (defaultBundle) {
    descInput.value = defaultBundle.desc;
    priceInput.value = defaultBundle.price;
    validityInput.value = defaultBundle.validity;
  }
});

小提示

  • 如果你只需要填充单个输入框,直接删掉多余的input和对应的JSON字段、赋值逻辑就行,非常灵活。
  • JSON数据的结构完全可以根据你的业务需求调整,比如增加更多字段或者修改字段名称,只要和输入框的赋值逻辑对应上就ok。
  • 这里用的是原生JavaScript,不需要依赖任何框架,兼容性拉满~

内容的提问来源于stack exchange,提问作者T.G.B

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:26:45