Mat*_*one 3 checkbox boolean node.js express pug
我正在使用Node + Express + Jade来渲染一些网页.在表单上有2个复选框.当表单通过POST提交时,如果选中该复选框,我会得到req.body.checkbox1 -> 'on',如果没有选中,我会得到req.body.checkbox1 -> undefined
是否可以将复选框值作为true或false?
这是我的服务器端测试代码
var bodyParser = require('body-parser');
var express = require('express');
var app = express();
app.use(bodyParser.urlencoded({extended: true}));
app.use(express.static(__dirname + '/webroot'));
app.set('views', __dirname + '/view');
app.set('view engine', 'jade');
app.listen(3001);
app.get('/', function (req, res) {
res.render('test');
});
app.post('/config', function (req, res) {
console.log(req.body.t);
console.log(req.body.f);
res.redirect('/');
});
Run Code Online (Sandbox Code Playgroud)
而我的玉形测试
form(action='/config', method='post')
input(type="checkbox", name="not_checked", checked=false)
input(type="checkbox", name="checked", checked=true)
input(type='submit')
Run Code Online (Sandbox Code Playgroud)
我最近在为一个项目工作......
这是表格:
form(action='/survey/submission/test/config', method='post')
input(type="checkbox", name="1")
input(type="checkbox", name="2")
input(type="checkbox", name="3")
input(type="submit")
Run Code Online (Sandbox Code Playgroud)
然后在节点javascript中,可以通过每个的req.body.name找到它们.如果选中其中一个框,则req.body.name将返回'on'.如果未选中框,则它们未定义.所以可以使用三元语句创建一个新对象,并将它们作为布尔值保存到db.
object = {
first: req.body.1 ? true : false,
second: req.body.2 ? true : false,
third: req.body.3 ? true : false
};
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助其他人.一旦我弄明白,我很高兴
你可以试试下面的玉石造型吗
form(action='/survey/submission/test/config', method='post')
input(type="checkbox", name="not_checked", value="false")
input(type="checkbox", name="checked", checked, value="true")
input(type='submit')
Run Code Online (Sandbox Code Playgroud)
该值将是字符串,因此您必须解析它。如果复选框没有checked属性,那么它不会包含在post请求正文中。因此,在上面的表单中,只有选中的复选框才会被发送,如下所示。
req.body : {"checked":"true"}
Run Code Online (Sandbox Code Playgroud)
如果您勾选两个复选框,则两个值都将按如下方式发送
req.body : {"not_checked":"false","checked":"true"}
Run Code Online (Sandbox Code Playgroud)
只要没有勾选复选框,您还可以添加针对未定义的验证
if(req.body.not_checked) {
console.log('not checked : ' + req.body.not_checked);
}
if(req.body.checked) {
console.log('checked : ' + req.body.checked);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17912 次 |
| 最近记录: |