如何检查HTML中是否选中了某些复选框?

时间:2016-04-17 09:32:07

标签: python html checkbox flask

我正在制作一个烧瓶网页,用户可以在其中选择多个选项。根据这些选项,我想在下一页中向他们展示他们选择的选项。 我的HTML代码:

<input type="checkbox" name="name1">name1<br>
<input type="checkbox" name="name2">name2<br>
<input type="checkbox" name="name3">name3<br>

我的Python代码:

if checkbox 1 is checked:
    do something
if checkbox 2 is checked:
    do something different
if checkbox 3 is checked:
    do another something different

我找不到如何形成这些if语句。我找到了一些东西:

.getvalue

但后来我收到了一个错误。使用单选按钮,我可以使用它。当我将它们命名为all,并给它们赋予不同的值:

option = request.form['name']

然而,这也不适用于复选框,因为它只会记住最后一个复选框,但我想要它们全部。

1 个答案:

答案 0 :(得分:5)

每个复选框都是唯一的,因此在表单中唯一命名。

可以使用表单中的名称作为键,通过request.form字典访问值本身。对于您的表单,复选框的名称为name1name2name3。但请注意,只有在表单上检查它们时它们才可用,否则它们的值不会发布到服务器上。

因此,在您的视图功能中,您可以像这样访问它们:

name1 = request.form.get('name1')
if name1:
    do_something(name1)

name2 = request.form.get('name2')
if name2:
    do_something(name2)

name3 = request.form.get('name3')
if name3:
    do_something(name3)

这使用get()在表单字典中执行查找。如果密钥存在于字典中,则将返回该值。如果密钥不在字典中,则返回值None

根据@Kevin Guan的建议,这可以在for循环中处理:

for checkbox in 'name1', 'name2', 'name3':
    value = request.form.get(checkbox):
    if value:
        do_something(value)