无法传递默认复选框值以形成[复制]

问题描述 投票:0回答:2

这个问题在这里已有答案:

我遇到了问题,当在网页上没有“选中”时,尝试从复选框中获取默认的“no”值。但是,当我单击复选框时,只有“yes”值通过名称“testName”传递给表单。但我希望从request.form.getlist中得到结果,如[yes,yes,no,no]列表

<form action="{{url_for('show_select')}}" method="post">
{% for entry in entries %}
    <tr>
      <td>
        <input name='testName' type='checkbox' onclick="checkboxtest();" value='No'>
     </td>
   </tr>
{%endfor %}
<div align="right">
<button type="submit" class="btn btn-primary">Go</button>
</div>
</form>

<script>
function checkboxtest(){
  var x = document.getElementsByName("testName");
  var i;
  for (i = 0; i < x.length; i++) {
    if (x[i].checked == true) {
      x[i].value = "Yes";}
  }
}
</script>

html flask
2个回答
1
投票

使用复选框的设计(已检查的是成功的,未选中的则不是),而不是尝试更改它们以不同的方式发送数据。

为每个复选框指定一个唯一值:

<fieldset>
    <legend> What pets do you like? </legend>

    <label><input type="checkbox" name="pet" value="cat"> Cats</label>
    <label><input type="checkbox" name="pet" value="dog"> Dogs</label>
    <label><input type="checkbox" name="pet" value="mouse"> Mice</label>
    <label><input type="checkbox" name="pet" value="rabbit"> Rabbits</label>
</fieldset>

然后查看服务器上提交的值列表。

您可能希望在示例中使用类似entry.id的值。


1
投票

如果选中,则复选框值仅包含在表单数据中。否则,它根本不包括在内。因此,无法直接设置“是”或“否”的值。

无论您在何处处理此表单数据,都应将该字段的缺乏值解释为未选中。

© www.soinside.com 2019 - 2024. All rights reserved.