Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaScript为空HTML标记分配一个值数组_Javascript_Html_Arrays_Django_Forms - Fatal编程技术网

使用JavaScript为空HTML标记分配一个值数组

使用JavaScript为空HTML标记分配一个值数组,javascript,html,arrays,django,forms,Javascript,Html,Arrays,Django,Forms,表中的某些值具有相同的标记名: {% for groups in groupList %} <tr> <td id="checkboxes"> <input type="checkbox" name="check" id="check_{{groups.GroupID}}"> </td> <tr> {% endfor %} 我检查了Google Chrome控制台

表中的某些值具有相同的标记名:

{% for groups in groupList %}
    <tr>
        <td id="checkboxes">
            <input type="checkbox" name="check" id="check_{{groups.GroupID}}">
        </td>
    <tr>
{% endfor %}
我检查了Google Chrome控制台,发现以下错误:

Uncaught TypeError: Cannot set property 'value' of undefined
at getChecked (1:75)
这突出了这一点:

document.getElementsByName("selected")[i].value = a.value;

我不确定我在这里哪里出错了。有人能帮我吗?

一种解决方案是将选中的复选框的
id
作为隐藏输入的数组发送出去

例如,如果选中了复选框检查\u 1检查\u 2检查\u 3,则可以按以下方式构建表单:


在服务器中,您将以数组形式接收选定的

request.POST['selected']/[“checkbox\u 1”、“checkbox\u 2”、“checkbox\u 3”]
要在用户单击“提交”按钮时生成所有隐藏输入,可以执行以下操作:

  • 为表单提供一个id,以访问它

{%csrf_令牌%}
为所选项目创建报告
  • 添加以下脚本

var form=document.getElementById('my-form');//拿到表格
//当用户提交表单时,执行以下功能
form.onsubmit=函数(){
document.getElementsByName('check')//获取所有复选框
.forEach(函数(检查输入){
//如果选中该复选框
if(checkInput.checked){
//创建新的隐藏输入并添加到表单中
var hiddenInput=document.createElement('input');
setAttribute('type','hidden');
setAttribute('name','selected[]);
hiddenInput.setAttribute('value',checkInput.getAttribute('id');
表格.appendChild(hiddenInput);
}
});
return true;//返回true以继续提交执行
};

< />代码>听起来您比<代码> >选择< /代码> s有更多的<代码>检查< /代码> s(但是,您可能需要访问<代码> < <代码> >属性>代码>检查/代码>,而不是<代码>检查。值< /代码> -考虑使用更精确的变量名或类型检查器)尝试<代码>(检查的)。使用
of
关键字可以循环遍历数组或节点列表,而不是
中用于对象的
。这似乎与Django无关。请使用
[]
代码段编辑器发布一个仅包含纯HTML和脚本的文档。@mplungjan它是一个Django模板,如for标记所示。我把它包括在这个问题中,因为可能存在使用视图/模板的潜在解决方案。我想使用JavaScript将值从check转换为selected。不过,这个项目对表中的复选框数量没有限制。我没有办法写出足够多的隐藏输入字段来覆盖所有可能的内容。@Cm0295当然,你不需要手工创建隐藏输入。我希望您在单击submit按钮时动态创建隐藏输入的代码。
Uncaught TypeError: Cannot set property 'value' of undefined
at getChecked (1:75)
document.getElementsByName("selected")[i].value = a.value;