Cod*_*ein 5 html checkbox node.js
我的网页上有一个表单,它被提交到 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>
Run Code Online (Sandbox Code Playgroud)
您可以在 node.js 文件中执行以下操作:
console.log(req.body.food); //This will print the array of values.
Run Code Online (Sandbox Code Playgroud)
如果您在页面中只选择了一个复选框(例如:Dairy),它将打印“dairy”。如果有多个复选框,则输出中会显示“{ 'dairy', 'meat' }”。确保复选框位于表单内。
另一种方法:
在表单中包含隐藏的输入元素:
<input name="SelectedValues" type="hidden" value="">
Run Code Online (Sandbox Code Playgroud)
还要在每个复选框的 onchange 事件中或表单中提交按钮的 onclick 事件中包含对 javascript 文件的调用。
onclick='buildlist("YourCheckBoxName","SelectedValues");'
Run Code Online (Sandbox Code Playgroud)
使用 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()+',';
}
}
Run Code Online (Sandbox Code Playgroud)
现在,在 node.js 文件中,使用以下代码访问值列表:
req.body.SelectedValues
Run Code Online (Sandbox Code Playgroud)