Dav*_*vid 5 javascript forms checkbox node.js
这是一个常见的主题,但在这个特定的用例中,我一直无法找到解决方案.我在一个表单中有一个动态数量的复选框,正在提交给Node.js服务器.我的复选框看起来像这样:
<input type='hidden' name='ingredient[num]' value='off' /> //not currently in use, see below
<input type='checkbox' name='ingredient[num]' checked />
Run Code Online (Sandbox Code Playgroud)
选中所有复选框后,服务器会收到类似这样的内容(在req.body.ingredient之后):
{ num: ['on','on','on'] }
Run Code Online (Sandbox Code Playgroud)
当取消选中某些或所有复选框时,我希望它接收具有相同数量值的类似内容:
{num: ['on','off','off'] }
Run Code Online (Sandbox Code Playgroud)
我尝试在我的复选框之前和之后使用值='off'的隐藏输入,但这没有用.选中时,服务器会同时接收"开"和"关"值.我也尝试了一种JavaScript解决方法(下面),我还没有让它工作.有任何想法吗?
<script>
let form = document.getElementById('addIngredients');
form.addEventListener('submit', function(e) {
e.preventDefault();
let boxes = document.querySelectorAll('input[type=checkbox]:not(:checked)');
boxes.forEach(function(box) {
box.setAttribute('value', 'off');
});
form.submit();
})
</script>
Run Code Online (Sandbox Code Playgroud)
编辑:这不是建议的重复问题.使用隐藏输入时,正文解析器似乎不会将复选框分组为数组.例如,有三个盒子,都经过检查,服务器正在接收[ 'off', 'on', 'off', 'on', 'off', 'on' ]
| 归档时间: |
|
| 查看次数: |
282 次 |
| 最近记录: |