使用验证器检查电子邮件是否已注册

时间:2020-08-03 22:45:44

标签: codenameone

我有一个带有验证器的注册表,该验证器绑定到一些TextField和Pickers,并绑定到一个提交按钮。

这些TextField之一用于电子邮件。假设我有一个Rest API可以知道给定的电子邮件是否已经注册。

当前,验证器仅检查给定的电子邮件是否为有效电子邮件。我还想检查它是否已经注册:如果是,验证必须失败,必须禁用“提交”按钮,并且必须在有问题的TextField下显示内容丰富的Label(在这种情况下,标志图标没有意义。它不是InputComponent,而是标准的简单TextField。

我不知道该如何实现。谢谢您的支持。

1 个答案:

答案 0 :(得分:1)

在标签下显示内容很容易,只需在布局下方添加错误标签即可。如果标签为空白,则不会显示,也不会占用空间。

验证代码旨在用于快速客户端验证。您所说的是服务器端验证,这是服务器错误的结果。无论如何,您都需要通过发出请求并失败来单独进行操作。

在这种情况下可以启用提交按钮,因为您不一定要延迟提交,但是如果在完成电子邮件检查之前按了提交,则可以等待该请求完成。

如果您希望通过验证器模式进行操作,则可以创建一个首先返回false的验证器(但禁用错误指示),然后在验证器下方的错误中编写“检查电子邮件的可用性”。

一旦收到结果,您只需更新验证器值并触发输入的重新验证即可。您只需使用相同的文本再次调用setText(),即可触发验证。

请注意,如果您在每次数据更改事件上都提出Web服务请求,这将产生非常糟糕的UI体验。键入完成后,您需要使用计时器发送延迟的请求。我想我过去在这里附近张贴过类似的内容。