首页 > 解决方案 > 具有相同名称的复选框数组,未选中的复选框在 python 和烧瓶中返回空值

问题描述

我正在使用一系列复选框。选中时,它们给出“on”值,但未选中时给出null.

如果我有 4 个复选框,如果我选中了 2 并且 2 未选中,则数组会给我 2 个值。见下图。

我如何获得 4 个值,我尝试使用相同的名称键入 =“hidden”,但它不起作用。我也尝试了未选中的复选框返回空值

HTML

                    `<form action="{{ url_for('desc') }}" method="POST">
                           <div id="items" class="col-sm-12">
                           <div class="form-group">

                            <div class="col-sm-8">

                            <label>Name:</label>
                            <input type="text" class="form-control" name="name" required="1">
                            </div>
                            <div class="col-sm-4" class="checkbox">
                                <p><label>&nbsp;</label></p>
                                  <label class="col-sm-4">MR: <input type="checkbox"  style="width: 20px;height: 20px;" name="mr"  ></label>
                            </div>
                           </div>
                        </div>
                       <div class="form-group">
                         <button class="btn btn-primary" type="button" onclick="addItem()">Add</button>
                        </div>
                     </form>`

JavaScript

function addItem(){
var html = '<div class="form-group"> <div class="col-sm-8"><label>Name:</label><input type="text" class="form-control" name="name"></div><div class="col-sm-4" class="checkbox"><p><label>&nbsp;</label></p><label class="col-sm-4">MR: <input type="checkbox" style="width: 20px;height: 20px;" name="mr"></label></div>'
$('#items').append(html);
}

我使用 javascript 动态添加项目

Python

`@app.route('/desc', methods=['POST'])
  def desc():
   if request.method == "POST":

    # name = request.form['name']
    items = request.form.getlist('name')
    mr = request.form.getlist('mr')

    print(items)
    print(mr)




    for (x, y) in zip(items, mr):
        print(x)
        print(y)

    return redirect(url_for('Index'))`

形式

输出

见图片。在第一张图片中有 4 个复选框名称。我在 2 个字段中填写了姓名并选中了 2 个复选框。但请参阅输出图像,我在名称数组中得到 4 个值,而在复选框中只有 2 个值。但是有4个复选框

标签: pythonjqueryhtmllistflask

解决方案


推荐阅读