通过复选框返回的对象 ID 在 ID 字符串中添加了额外的 space

object id returned via checkbox adds extra space in the id string

我正在创建一个待办事项列表,当我单击复选框时,它 returns 项目的 ID 被选中,然后它通过使用 findByIdAndRemove 方法从我的本地猫鼬数据库中删除项目来删除它,但是它 returns 的 id 有一个额外的 space 与之关联。我一开始很困惑为什么我的 id 不正确,后来经过一些调试后我发现了这个问题,我不知道为什么会这样。当我 trim 字符串的最后一个字符时,它解决了我的问题,但为什么还要添加额外的 space?

很高兴知道是什么原因造成的。

复选框返回的 ejs 代码 item._id

        <form action="/delete" method="POST">
        <div class="item">
          <input type="checkbox" name="checkbox" value="<%=item._id%> " onchange="this.form.submit()">
          <p><%=  item.name  %></p>
        </div>
      </form>
      <% }) %>

app.js /delete post 请求路由的代码

app.post("/delete", function(req, res){

  let checkedItemId = req.body.checkbox;
  console.log(checkedItemId + "hii");  // outputs: 60dd7cafc9bfd91808c706a6 hii
                                       // expected: 60dd7cafc9bfd91808c706a6hii

  Item.findByIdAndRemove(checkedItemId, function(err) {
    if(!err) {
      console.log("successfully deleted item");
    } else {
      console.log(err);
    }
  });

  res.redirect("/");

});

value="<%=item._id%> " 这个 space 导致了问题。删除它,你应该没问题。