Flask表单提交时不触发验证问题求助
问题分析与解决
核心问题
- 提交按钮未包含在表单内:你的提交按钮代码写在了
<form>标签外部,点击按钮时无法触发表单提交动作。 - 表单提交路径错误:表单的
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
相关产品推荐
相关产品推荐

