FlaskForm модальный отправить пользовательский валидатор не вызывается - PullRequest
0 голосов
/ 19 декабря 2018

Я использую FlaskForm в модальном режиме.Модал настроен так:

<form id="form_id" action="action" method="post" enctype="multipart/form-data">

И в нижнем колонтитуле:

<button class="btn btn-primary btn-ok" form="form_id">Save</button>

Это означает, что он сразу же проверяет и вызывает URL-адрес «действия», когдапользователь нажимает на Сохранить.Это работает нормально, и если одно из полей не проверяется корректно, оно показывает хорошее всплывающее окно над полем.

НО, для одного поля я пытался установить пользовательский валидатор:

validators=[InputRequired(), validate_function]

Но моя проблема в том, что эта функция не вызывается при использовании функции автоматической отправки!Кажется, что он только проверяет существующие валидаторы, такие как 'InputRequired ()', но игнорирует мои пользовательские валидаторы.

Я узнал, проверяю ли я его сам, например, когда вызывается метод действия, и я делаю это:

form = TestForm(obj=request.form)
form.validate():

Тогда моя собственная пользовательская функция валидатора прекрасно вызывается.Но я хотел бы, чтобы он вызывался также при простом нажатии на кнопку submit в модальной форме.

Я знаю, что могу перехватить submit и вызвать себя для проверки в JQuery, и тогда это, вероятно, сработает, но я думаю, что это должноуметь работать ... У кого-нибудь есть ответ?

1 Ответ

0 голосов
/ 19 декабря 2018

Ах, я думаю, теперь я знаю, почему это просто не может работать.Это потому, что я действительно никогда не использовал валидацию WTForm.Я использовал автоматическую проверку формы HTML5.Это автоматически проверяет поля, где, например, «обязательный» добавляется в HTML.Так что я предполагаю, что form.validate () никогда не вызывался в моем случае.

Так что я думаю, что единственное решение (также держать модальный режим открытым и не закрываемым) - перехватить submit и вызвать validate в jquery.себя.Надеюсь, это когда-нибудь кому-нибудь поможет:)

...