无法将默认复选框值传递给表单

时间:2019-04-16 14:48:35

标签: html flask

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

<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>

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分: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之类的值。

相关问题