CNode

不知道是不是遇到bug了,求大家帮忙

Hhexie发布于13 年前最后回复13 年前2 回复4069 浏览0 收藏

html代码

I have a bike:

I have a car:

I have an airplane:

接下来是我的node.js 服务器端代码

if(method === 'post'){ photos = req.body.demo;

	console.log('length' + photos.length);

	console.log('--------------------------');

	console.log(req.body);

	console.log(req.body.demo);



	console.log('error data'  + photos[1]);

}

打印信息 length2

{ demo: '46' } 46 error data6

当我提交一个复选框的时候,竟然出现长度2的值, 理论上来说,我选上一个,就这认一个才对,希望各位能帮帮忙。

photos[1]的时候,理论上,只有一个值,这个值,应该是未定义才对哇。。。

查看回复

回复 (2)

S
shiedman#1·13 年前

只是一个思维误区而已 因为typeof photos == 'string', photos='46',所以photos.length=2, photos[1]=6 当checkbox单选,浏览器发送的http请求是:demo=46,express无法区分这是来自text控件还是checkbox控件的值,于是保守点将demo设为字符串46 当checkbox多选,浏览器发送的http请求是:demo=46&dmeo=14,express一看就明白,哦,应该将demo设为数组['46','14']

H
hexie#2·13 年前
引用 shiedman只是一个思维误区而已 因为typeof photos == 'string', photos='46',所以photos.length=2, photos[1]=6 当checkbox单选,浏...

可能是吧,我现在的写法修改了 写成 photos = [] photos.push(req.body.demo)

这样,基本算是解决了我刚才遇到的问题,谢谢你的回答

参与回复
登录后即可参与回复。登录