如何检查HTML中的复选框是否已选中?

3

我正在使用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

但是后来我遇到了一个错误。使用单选按钮可以使其正常工作。当我将它们全部命名为相同的名称并赋予不同的值时,就可以使其正常工作:

option = request.form['name']

然而,这也不能用于复选框,因为它只会记住最后一个选择框,但我希望所有选择框都被记住。
1个回答

7

每个复选框都是唯一的,并且在表单中具有独特的名称。

这些值本身可以通过使用表单中的名称作为键从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)

1
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Remi Guan
@KevinGuan:好建议,谢谢。 - mhawke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接