在Bootstrap模式中显示WTForm的验证错误

时间:2013-12-01 23:38:13

标签: twitter-bootstrap flask flask-wtforms

我正在使用烧瓶,WTForms和Bootstrap。我在模态中创建了一个表单。我遇到的问题与WTForms验证有关。在表单提交时,如果有任何错误,它会重新加载页面但没有模态打开(并且错误/表单显示在模态中)

如果表单中有错误,我想找到一种方法让模态打开(或不重新加载整个页面,只是模态)。因此,如果我提交表单并且存在问题,我可以看到包含错误的相同表单,而无需手动重新打开模式。

我没有使用AJAX,因为我不确定它如何与flask / WTForms一起使用。这是一个基本的帐户编辑表单,我的计划是在提交时将其重定向到不同的页面(如果没有错误)。

以某种方式使用AJAX会更容易吗?或者,如果页面在提交后重新加载,是否有一种简单的方法可以强制打开模态?

将数据背景设置为静态不是我想要的。

模态中包含的表单字段示例:

<div class="form-group">
    <label for="firstname">First Name</label>
    {{form.first_name(value=s.first_name, class="form-control", id="firstname")}}
    {% for error in form.errors.first_name %}
        <span style="color: red;">[{{error}}]</span>
    {% endfor %}
</div>

1 个答案:

答案 0 :(得分:2)

AJAX适用于Flask/WTForms。你可以找到很多这种情况的插件。对于AJAX登录视图,您应该返回重定向URL而不是直接重定向,如果请求是正确的重定向,请使用js:window.location = '/redirect/url'

另一种方法是在表单中放置一些标志,并在页面加载时检查它以显示模态。