正确的方法来读取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