You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask表单提交时不触发验证问题求助

问题分析与解决

核心问题

  1. 提交按钮未包含在表单内:你的提交按钮代码写在了<form>标签外部,点击按钮时无法触发表单提交动作。
  2. 表单提交路径错误:表单的action="/"会将请求发送到首页路由,而表单的处理逻辑在/exam路由,即便提交成功也不会执行对应校验逻辑。

修复后的HTML代码

{% extends 'layout.html' %}

{% block content %}
    <h3 class="pt-5 p-4">exam page</h3>

    <div class="form">
        <fieldset class="form-group">
            <!-- 修正action为当前处理路由,或直接省略(默认提交到当前页面) -->
            <form method="POST" action="/exam" class="m-3">
                {{ form.hidden_tag() }}
                <legend class="border-bottom mb-4">question will here</legend>
                
                <ul class="form-group">
                {{ form.optA.label(class="form-text mt-3") }}
                {{ form.optA(class="mx-2 optionA mt-3") }}
                </ul>

                <!-- 将提交按钮移入form标签内部 -->
                <div class="form-group m-3">
                    {{ form.submit(class="btn btn-outline-info") }}
                </div>
            </form>
        </fieldset>
    </div>
{% endblock %}

验证效果

修改后点击提交按钮,表单会向/exam路由发送POST请求,form.validate_on_submit()条件会触发,控制台会打印预设的"w",表单校验逻辑正常执行。

内容的提问来源于stack exchange,提问作者LocalDogeCoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 19:22:54