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

表单提交时如何以设备编号为Key向LocalStorage新增数据?

解决方法

原代码的问题在于每次都用固定的equipment作为LocalStorage的键,导致新提交的数据直接覆盖旧数据。要实现以设备编号为键存储多条数据,只需要调整存储时的键名,并优化存储的数据结构:

修改后的代码

class Equipment {
  constructor(equipmentnumber, ordernumber, date) {
    this.equipmentnumber = equipmentnumber;
    this.ordernumber = ordernumber;
    this.date = date;
  }
}

function addProcess() {
  // 获取并格式化表单输入值
  const eqNumber = equipmentnumber.value.trim();
  const orderNum = ordernumber.value.trim();
  const submitDate = date.value.trim();

  // 验证必填字段完整性
  if (!eqNumber || !orderNum || !submitDate) {
    alert('请填写完整的设备信息');
    return;
  }

  // 整理需要存储的数据(键已用设备编号,无需重复存储该字段)
  const equipmentData = {
    ordernumber: orderNum,
    date: submitDate
  };

  // 以设备编号作为唯一键,将数据存入LocalStorage
  localStorage.setItem(eqNumber, JSON.stringify(equipmentData));
}

关键改动说明

  • 替换存储键名:不再使用固定的equipment作为键,改用设备编号(eqNumber)作为LocalStorage的键,每条数据拥有独立标识,避免互相覆盖。
  • 优化存储结构:因为键已经是设备编号,值里只保留ordernumber和date即可,减少数据冗余。
  • 增加基础校验:提交前检查必填字段是否为空,避免无效数据存入LocalStorage。

最终效果

提交表单后,LocalStorage会生成如下结构:

键(Key)值(Value)
E123456789{"ordernumber":"456","date":"05.11.2022"}
E987654321{"ordernumber":"654","date":"05.11.2022"}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 13:20:32