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

NodeJS中如何从input name字段获取单个值而非数组

问题根因

你的listName隐藏输入框写在了for循环内部,循环执行多少次就会生成多少个同名的listName字段,表单提交时多个同名字段会被解析为数组,所以你拿到的才是长度和列表项数一致的["home","home","home","home"]。

修复方案

把隐藏输入框移到for循环外面,整个表单只保留一个listName字段即可。

修改后的EJS表单代码:

<form action="/delete" method="POST">
<% for (let i=0; i<newListItems.length; i++) { %>
    <div class="item">
      <input type="checkbox" onChange="this.form.submit()" name="checkboxname" value="<%=newListItems[i]._id%>">
      <p><%=  newListItems[i].name  %></p>
    </div>
<% } %>
<!-- hidden字段移到循环外,整个表单只保留一个 -->
<input type="hidden" name="listName" value="<%= listTitle %>">
</form>

修改后后端req.body.listName就会返回你期望的单个字符串"home",listName === day的判断逻辑也可以正常执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 19:36:04