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中的最后一个检查值,而不是整个数组

在 Web Developer Express 中选择母版页

Outlook Express收件箱怎样增加“收件人”栏

跨网络 SQL Server Express

检查复选框数组中的复选框是不是被选中

Extjs-3.4 复选框组指定列中的复选框