正确的方法来读取NodeJS中的checkbox数据

我在我的网页上有一个表单,并将其提交给NodeJS后端。

我在checkbox有问题。 当提交到服务器,我通过req.body.foods阅读他们,我得到的东西就像['on', 'on', 'on']

但是我想要得到实际的价值,就是像['dairy', 'fish']等等。

我怎样才能做到这一点?

  <div class="col-sm-6"> <div class="checkbox"> <label><input name="food" type="checkbox" value="dairy">Dairy</label> </div> <div class="checkbox"> <label><input name="food" type="checkbox" value="meat">Meat</label> </div> <div class="checkbox"> <label><input name="food" type="checkbox" value="fish">Fish</label> </div> </div> 

您可以在node.js文件中执行以下操作:

 console.log(req.body.food); //This will print the array of values. 

如果您在页面中只有一个checkbox(例如:乳制品),则会打印“乳制品”。 如果有多个checkbox,那么在输出中会得到“{”乳制品“,”肉“}。 确保checkbox在表单中。

另一种方法:

在表单中包含隐藏的input元素:

 <input name="SelectedValues" type="hidden" value=""> 

还要在每个checkbox的onchange事件中或在表单中的提交button的onclick事件中包含对JavaScript文件的调用。

 onclick='buildlist("YourCheckBoxName","SelectedValues");' 

使用JavaScript函数循环您的checkbox,并build立一个以逗号分隔的选定值列表:

 function buildlist(listName,labelName){ var controls = document.getElementsByName(listName); var label = document.getElementsByName(labelName); label.value = ''; for(var i=0;i<controls.length;i++){ label.value += controls[i].value.toString()+','; } } 

现在在node.js文件中,使用下面的代码来访问值列表:

 req.body.SelectedValues