我已经生成了一对带有成对图像的长形式。用户打算用一堆复选框对每对图像差异进行分类。
因此,每个复选框都会重复多次,其特征为:
1)差异的类型意味着
2)左图像名称
3)右图像名称
如何收集所有复选框数据并使用一个按钮将其提交给服务器?如何编码要发送的数据?
在普通网络中,我会在复选框名称中编码所有参数,然后在服务器端解码它们。可能是Express + Jade有这个特殊的手段吗?可能是我可以获得一个JSON,描述所有填写的表格并立即发送它?
UDPATE
目前我要将数据编码为表单字段名称,如此处
<input type="checkbox" name="imagename1_imagename2" value="transitionname1">
<input type="checkbox" name="imagename3_imagename4" value="transitionname2">
<input type="checkbox" name="imagename5_imagename6" value="transitionname1">
...
等等。
在服务器端,我应该做类似
的事情for(var checkbox_name in req.body) {
var pair = checkbox_name.split("_");
var left_image = pair[0];
var right_image = pair[1];
...
}
现在,假设名称需要能够包含任何字符,所以我需要转义/取消它们等等。
是不是有一些工具可以自动完成这项工作?
答案 0 :(得分:1)
您可以像任何其他表单一样提交。假设您的代码设置类似于:
<form action="/example/handleFormSubmit" method="POST">
<!-- Various generated form elements -->
<input type="checkbox" id="example" name="example" value="example">
<label for="example">Example</label>
</form>
然后假设您已配置body-parser,表单字段将在req.body
上提供。因此,为了获得复选框的提交数据,我将执行以下操作:
exports.handleFormSubmit = (req, res) => {
// The `name` of the input field is also the property name on `body`
console.log(req.body.example)
}