1

フラスコ、WTForms、および Bootstrap を使用しています。モーダル内にフォームを作成しました。私が遭遇した問題は、WTForms の検証に関連しています。フォームの送信時に、エラーがある場合はページを再読み込みしますが、モーダルは開きません (エラー/フォームはモーダルに表示されます)。

フォームにエラーがある場合、モーダルを開く (またはページ全体をリロードせず、モーダルだけをリロードする) 方法を見つけたいと思います。そのため、フォームを送信して問題が発生した場合、手動でモーダルを再度開かなくても、エラーが含まれている同じフォームを表示できます。

フラスコ/WTFormsでどのように機能するかわからないため、AJAXを使用していません。これは基本的なアカウント編集フォームで、送信時に別のページにリダイレクトする予定です (エラーがなければ)。

どういうわけかAJAXを使用する方が簡単でしょうか? または、送信後にページが再ロードされた場合にモーダルを強制的に開く簡単な方法はありますか?

data-backdrop を static に設定することは、私が探しているものではありません。

モーダルに含まれるフォーム フィールドの例:

<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>
4

1 に答える 1

2

AJAX は で正常に動作しFlask/WTFormsます。この場合、多くのプラグインを見つけることができます。AJAXログインビューの場合、直接リダイレクトの代わりに応答でリダイレクトURLを返す必要があり、要求が正しかった場合は js: でリダイレクトしますwindow.location = '/redirect/url'

別の方法は、フォームにフラグを設定し、ページの読み込み時にチェックしてモーダルを表示することです。

于 2013-12-02T05:05:56.650 に答える