我使用npm formidable(https://www.npmjs.com/package/formidable)来处理我的快速js应用程序中的表单。
我有这样的表格:
<form action="/getchecks" method="post" enctype="multipart/form-data" id="set-featured-form">
<fieldset>
<input type="checkbox" name="featured" value="1">News 1 heading <br>
<input type="checkbox" name="featured" value="2">News 2 heading <br>
<input type="checkbox" name="featured" value="4">News 4 heading <br>
<input type="checkbox" name="featured" value="5">News 5 <br>
<input type="checkbox" name="featured" value="6">news 6 <br>
<input type="checkbox" name="featured" value="7">news 7 <br>
<input type="button" value="Save" id="save-featured">
</fieldset>
</form>
我希望用户能够选择多个复选框,然后在提交时我想要检查复选框。但是,在这种情况下,它只返回最后一个选中的复选框。例如:如果我检查1,5和&amp; 7,它只返回7.这是我的路由器代码:
router.post('/getchecks', function (req, res, next){
getCheckboxes(req, res);
});
function getCheckboxes(req, res){
var form = new formidable.IncomingForm();
form.parse(req, function(err, fields, files){
res.writeHead(200, {
'content-type': 'text/plain'
});
res.write('received the data:\n\n');
res.end(util.inspect({
fields: fields
}));
});
}
这是输出:
received the data:
{ fields: { featured: '7' } }
如何让它传递复选复选框的值数组?
感谢。
答案 0 :(得分:1)
您是否尝试过将[]添加到精选结尾?
<form action="/getchecks" method="post" enctype="multipart/form-data" id="set-featured-form">
<fieldset>
<input type="checkbox" name="featured[]" value="1">News 1 heading <br>
<input type="checkbox" name="featured[]" value="2">News 2 heading <br>
<input type="checkbox" name="featured[]" value="4">News 4 heading <br>
<input type="checkbox" name="featured[]" value="5">News 5 <br>
<input type="checkbox" name="featured[]" value="6">news 6 <br>
<input type="checkbox" name="featured[]" value="7">news 7 <br>
<input type="button" value="Save" id="save-featured">
</fieldset>
</form>
<强>更新强>
看起来这已经修复:#380
但是,这个PR还没有与主分支合并!
我做了本地更改,但确实有效。