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

ESP32网页服务器表单:如何让FormData存储select与time输入值?

解决FormData无法获取值的问题

FormData收集表单数据的核心规则是:只有带name属性的表单元素,才会被纳入FormData对象。你遇到的问题大概率是<select>和<input type="time">没有设置name属性,导致这些元素被自动忽略。

修复步骤:

  1. 给所有<select>标签添加name属性
    比如原来的代码如果是:

    <select id="tankType">
      <option value="1">水箱A</option>
      <option value="2">水箱B</option>
    </select>
    

    改成:

    <select id="tankType" name="tankType">
      <option value="1">水箱A</option>
      <option value="2">水箱B</option>
    </select>
    
  2. 给所有<input type="time">标签添加name属性
    比如原来的代码:

    <input type="time" id="schedule1">
    

    改成:

    <input type="time" id="schedule1" name="schedule1">
    

验证方法:

修改后可以用遍历FormData的方式确认所有字段都被正确收集:

const form = document.getElementById('your-form-id');
const formData = new FormData(form);

// 打印所有表单键值对
for (const [key, value] of formData.entries()) {
  console.log(`${key}: ${value}`);
}

额外排查点:

  • 如果元素设置了disabled属性,FormData也会跳过它,确保这些元素没有被禁用
  • 确认<input type="time">的输入格式符合规范(即使格式不合法,只要有name,FormData依然会收集输入值)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 18:45:58