我的网页上有一个表单,并将其提交给NodeJS后端。
我在复选框上遇到问题。当提交到服务器并且我通过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>
答案 0 :(得分:1)
您可以在node.js文件中执行以下操作:
console.log(req.body.food); //This will print the array of values.
如果您在页面中只选中了一个复选框(例如:Dairy),它将打印&#34; dairy&#34;。如果有多个复选框,那么您可以获得&#34;&#39; dairy&#39;,&#39; meat&#39; }&#34;在输出中。确保复选框在表单中。
另一种方法:
在表单中包含隐藏的输入元素:
<input name="SelectedValues" type="hidden" value="">
还包括在每个复选框的onchange事件中调用javascript文件,或者在表单中的提交按钮的onclick事件中调用。
onclick='buildlist("YourCheckBoxName","SelectedValues");'
使用javascript函数循环复选框并构建逗号分隔的所选值列表:
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