我习惯于在我的烧瓶应用程序中通过 Flask-WTF 使用 WTForms。进行服务器端验证是微不足道的。但是我如何利用这个服务器验证成为字段级、ajax、客户端验证?因此,当用户选项卡到另一个输入字段时,我的应用程序可以直接继续验证它并给出验证警告/信息/错误。
我还没有在互联网上找到资源
我习惯于在我的烧瓶应用程序中通过 Flask-WTF 使用 WTForms。进行服务器端验证是微不足道的。但是我如何利用这个服务器验证成为字段级、ajax、客户端验证?因此,当用户选项卡到另一个输入字段时,我的应用程序可以直接继续验证它并给出验证警告/信息/错误。
我还没有在互联网上找到资源
一个可能的解决方案如下:
在客户端,您将处理程序附加到blur
表单中所有控件的事件。
每次发生模糊事件时,您都会运行一个 Javascript 函数来收集所有字段的值,然后将它们作为 ajax POST 请求提交。
在服务器上,处理这个 ajax POST 请求的视图函数会实例化 Flask-WTF 表单,然后对其进行验证。验证导致的任何错误都会收集到字典中,然后以 JSON 响应的形式发送回客户端。
例如,成功的验证可能会返回以下 JSON:
{
"errors": {}
}
包含错误的响应可能是:
{
"errors": {
"name": "This field is required",
"age": "Enter a numeric value between 0 and 99"
}
}
客户端获取此 JSON 响应并将所需的更改应用于 DOM 以公开错误。
如果您在前一个返回之前得到一个新的模糊事件,您可能希望中止待处理的 ajax POST 并使用更新的字段值开始一个新的。您一次应该只有一个待处理的验证请求,以避免出现竞争条件。
一个很好的问题。这就是我们所做的(flask 后端,jquery 前端):