首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何修改从复选框表单输入中获得的数据

如何修改从复选框表单输入中获得的数据
EN

Stack Overflow用户
提问于 2022-04-09 17:23:22
回答 1查看 46关注 0票数 0

我有一个用把手呈现的输入复选框元素列表。

代码语言:javascript
运行
复制
<form method="POST" action='/processImages'>
                        <input type='checkbox' id='.DS_Store' name='.DS_Store' />
                            <p>.DS_Store</p>
                        <input type='checkbox' id='.localized' name='.localized' />
                            <p>.localized</p>
                        <input type='checkbox' id='Courses' name='Courses' />
                            <p>Courses</p>
                        <input type='checkbox' id='Home' name='Home' />
                            <p>Home</p>
                    
<input type="submit" value="run">

我希望将名称传递给另一个函数,或者用以下代码在其他路径上呈现它们的名称:

代码语言:javascript
运行
复制
const processRouter = express.Router()

const processRouter = express.Router()
processRouter.post('/', async (req, res, next) => {
    const test =(req.body) 
    res.send(test)
})

app.use('/processImages', processRouter)

我得到的是:

{“课程”:“on”,"Home":"on"}

但是我只想得到像{“Course”、"Home"}这样的名字--如何在每个元素上去掉这个" on“,我假设这是从输入类型复选框开始的。

我是一个初学者,我不能真正理解我应该如何只要求“名字”。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-09 17:36:02

不可能获得{"Courses", "Home"},因为这是无效的JSON格式。但是,您可以通过请求传递数组["Courses", "Home"]

如果表单发送的请求不是您想要的--考虑编写自己的onSubmit函数来处理AJAX调用。

尽管如此,是否有特定的原因要修改请求?您可以解析原始格式以得到您想要的结果:

代码语言:javascript
运行
复制
function iterate(input) {
    //Example input: {"Courses":"on","Home":"on"}

    const arr = [];

    Object.entries(input).forEach(function ([key, value], index) {
        console.log(key, value, index);
        if (value === "on")
            arr.push(key);
    });

    return arr;
}

console.log(iterate({ "Courses": "on", "Home": "on" }));
console.log(iterate({ "Courses": "on", "Home": "off" }));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71810324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档