HTML表单复选框未按预期提交

Ste*_*eve 3 html forms checkbox ruby-on-rails

[解决方案:通过将"[]"连接到结尾,将我的名字更改为数组.另外,将我的ID更改为唯一值以符合HTML规范]

我正在创建一个表单,它有一个矩阵(html表)的复选框,每行一个用户,以及列的用户权限.每个单元格都有一个复选框 连续的每个复选框都将"名称"设置为用户的电子邮件地址(唯一).复选框的值是特定权限的ID.当我单击提交按钮,并检查我从HTTP POST返回的参数时,只有最多的复选框设置为检查了多个框的行.

例如,有三个复选框,第一个和第二个选中,第三个未选中.我只返回第二个复选框的name = id.

我在Rails中构建表单,虽然我不相信它真的相关.此外,提供此行为的浏览器是Chrome,Iceweasel和Epiphany ...所以我认为这是我的形式.

我的表格的摘录:

<tr>
                <td>UserOne</td>
                <td>one@oreo.com</td>
                <td>
                        <input checked="checked" id="one_oreo.com" name="one@oreo.com" type="checkbox" value="1" />
                </td>
                <td>
                        <input id="one_oreo.com" name="one@oreo.com" type="checkbox" value="2" />
                </td>
                <td>
                        <input id="one_oreo.com" name="one@oreo.com" type="checkbox" value="3" />
                </td>
                <td>
                        <input checked="checked" id="one_oreo.com" name="one@oreo.com" type="checkbox" value="4" />
                </td>
                <td>
                        <input id="one_oreo.com" name="one@oreo.com" type="checkbox" value="5" />
                </td>
                <td>
                        <input id="one_oreo.com" name="one@oreo.com" type="checkbox" value="6" />
                </td>
            </tr>
Run Code Online (Sandbox Code Playgroud)

Rob*_*Fos 5

你已经将all =""设置为同一个东西,所以当你勾选多个复选框时,它将替换原来那里的任何值.

要么为每个复选框指定一个不同的名称,name="one@oreo.com_check_1"要么将它们转换为数组,name="one@oreo.com[]"然后使用这将存储在数组中传递给它的所有值,然后在表单提交后再处理!