Express 中的复选框
Posted
技术标签:
【中文标题】Express 中的复选框【英文标题】:Checkbox in Express 【发布时间】:2020-03-05 22:06:54 【问题描述】:我目前正在尝试通过 express/ejs 将复选框值解析为数组。
目前,用户应该填写这样的表格并加粗一个复选框: 答案:复选框:
我想解析数据,以便从输入中获得两个数组:
answer = [“字符串 1”、“字符串 2”、“字符串 3”、“字符串 4”] 复选框 = [选中,未选中,未选中,未选中]
问题是,express 只解析选中的复选框,而不是未选中的值(所以我得到的只是复选框 =“选中”)。
如何快速记录“未检查”值?我考虑过根据是否选中复选框来设置 value = true/false,但我不知道如何在 ejs 中进行检查。
谢谢!
JS
router.post(`/`, (req, res) =>
console.log(req.body);
res.redirect(`/`);
)
EJS
<form action="/question" method="post">
<label for="sessionName">Session Name</label><input type="text" name="sessionName">
<div class="question">
<label for="question">Question: </label><input type="textarea" name="question">
<ul>
<li><label for="answer">Answer 1: </label><input type="textarea" name="answer"><input type="checkbox" name="test" value="1"></li>
<li><label for="answer">Answer 2: </label><input type="textarea" name="answer"><input type="checkbox" name="test" value="1"></li>
<li><label for="answer">Answer 3: </label><input type="textarea" name="answer"><input type="checkbox" name="test" value="1"></li>
<li><label for="answer">Answer 4: </label><input type="textarea" name="answer"><input type="checkbox" name="test" value="1"></li>
</ul>
</div>
<input type="submit" name="" value="Create Session">
</form>
【问题讨论】:
【参考方案1】:Form 只会将检查的值发送到节点服务器,因此 Express 无法知道未检查的值是什么,也不知道相应的“字符串”、标签或其他什么。
我想您必须使用自己的机制,在提交之前更新一些隐藏的输入和值 (form.onsubmit = ...),以便创建您需要的数组。
【讨论】:
以上是关于Express 中的复选框的主要内容,如果未能解决你的问题,请参考以下文章
复选框数组返回nodejs中的最后一个检查值,而不是整个数组