我有一个用把手呈现的输入复选框元素列表。
<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">
我希望将名称传递给另一个函数,或者用以下代码在其他路径上呈现它们的名称:
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“,我假设这是从输入类型复选框开始的。
我是一个初学者,我不能真正理解我应该如何只要求“名字”。谢谢
发布于 2022-04-09 17:36:02
不可能获得{"Courses", "Home"}
,因为这是无效的JSON格式。但是,您可以通过请求传递数组["Courses", "Home"]
。
如果表单发送的请求不是您想要的--考虑编写自己的onSubmit函数来处理AJAX调用。
尽管如此,是否有特定的原因要修改请求?您可以解析原始格式以得到您想要的结果:
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" }));
https://stackoverflow.com/questions/71810324
复制相似问题