烧瓶没有得到复选框值

Posted

技术标签:

【中文标题】烧瓶没有得到复选框值【英文标题】:Flask isn't getting the checkbox value 【发布时间】:2015-11-18 07:29:00 【问题描述】:

当我点击提交按钮时,我正在尝试打印 Flask 中的复选框值。

app.py sn-p:

@app.route('/test2', methods=['GET', 'POST'])
def test2():

    if request.method == "POST":
        if request.form['submit'] == 'submit':
            print(request.args.get('check'))

    return render_template('test.html')

HTML:

<div class="container"><br>
  <form role="form" method="post">
    <input type="checkbox" name="check" value="test">
    <button type="submit" name="submit" value="submit">Submit</button>
  </form>
</div>

当我点击提交按钮时它返回“无”。

我也试过 request.form.get()

@app.route('/test2', methods=['GET', 'POST'])
def test2():

    if request.method == "POST":
        if request.form['submit'] == 'submit':
            print(request.form.get('check'))

    return render_template('test.html')

这也返回“无”。

【问题讨论】:

【参考方案1】:

提交 HTML 表单时,未选中的复选框不会发送任何数据。在 Flask 方面,form 中不会有键,因为没有收到任何值。如果要检查是否选中了单个复选框(具有唯一名称),只需测试其名称是否在 form 中。如果要检查多个复选框(同名)中的哪一个被选中,请改用getlist

一个布尔值:

<input type="checkbox" name="check">
checked = 'check' in request.form

多个选项:

<input type="checkbox" name="check" value="1">
<input type="checkbox" name="check" value="2">
<input type="checkbox" name="check" value="3">
selected = request.form.getlist('check')
any_selected = bool(selected)

【讨论】:

以上是关于烧瓶没有得到复选框值的主要内容,如果未能解决你的问题,请参考以下文章

复选框的属性[重复]

如何根据复选框更新数据库值? jQuery/php/ajax

jQuery怎么得到复选框选中的值

Handsontable 复选框不起作用

如何将复选框值从 HTML 发送到 Node JS?

js复选框实现全选全不选反选