无法将默认复选框值传递给窗体



我在网页上未"选中"时尝试从复选框中获取默认的"否"值时遇到了问题。但是,当我单击复选框时,只有"是"值通过名称"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>

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

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

<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 之类的内容。

复选框

值仅在选中时包含在表单数据中。 否则,它根本不包括在内。 因此,无法直接设置所需的"是"或"否"值。

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

最新更新