Node.js Nodejs从所选字段请求名称以外的其他属性
我是Nodejs和express的新手,我正在尝试将输入字段中的多个值添加到数据库中 这是我的表格:Node.js Nodejs从所选字段请求名称以外的其他属性,node.js,express,Node.js,Express,我是Nodejs和express的新手,我正在尝试将输入字段中的多个值添加到数据库中 这是我的表格: form(method='post',action='/form',enctype='multipart/form-data') .form-check label First Question input.form-check-input(name='first', type='radio', id="radio1", value="3" data="option1")
form(method='post',action='/form',enctype='multipart/form-data')
.form-check
label First Question
input.form-check-input(name='first', type='radio', id="radio1", value="3" data="option1")
label.form-check-label(for="radio1") 1
input.form-check-input(name='first', type='radio', id="radio2", value="10" data="option2")
label.form-check-label(for="radio2") 2
input.form-check-input(name='first', type='radio', id="radio3", value="5" data="option3")
label.form-check-label(for="radio3") 3
input.form-check-input(name='first', type='radio', id="radio4", value="7" data="option4")
label.form-check-label(for="radio4") 4
在路由器文件中,我可以使用req.body.first
成功捕获所选输入无线电的值,但我也想获取数据信息,将其与值一起存储在数据库中,类似于req.body.first.data
如何执行此操作?您可以在提交前向表单数据添加
数据
值
index.pug
script(src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js')
form(action='/form',method='post')
label First Question
input.form-check-input(name='first', type='radio', id="radio1", value="3" data="option1")
label.form-check-label(for="radio1") 1
input.form-check-input(name='first', type='radio', id="radio2", value="10" data="option2")
label.form-check-label(for="radio2") 2
input.form-check-input(name='first', type='radio', id="radio3", value="5" data="option3")
label.form-check-label(for="radio3") 3
input.form-check-input(name='first', type='radio', id="radio4", value="7" data="option4")
label.form-check-label(for="radio4") 4
input(type='submit', value='Submit')
script.
$(document).ready(function () {
$('form').submit(function (e) {
var $selectedEle = $('input[name=first]:checked');
var data = {
data: $selectedEle.attr('data')
};
data[$selectedEle.attr('name')] = $selectedEle.attr("value");
$.post({
type: "POST",
url: '/form',
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (res) {
console.log('res from server', res);
}
});
return false;// prevent default form submit
});
})
app.js
app.get('/form', function (req, res) {
return res.render('o'); // your pug file
}).post('/form', function (req, res) {
let formData = req.body;
console.log('name', formData.first);
console.log('data', formData.data);
return res.status(200).send(formData);
});
谢谢,这很有效。我花了很多时间试图弄明白这一点,我想我可以从后端访问它,而不需要在前端添加任何额外的代码。谢谢