我有一个带有验证器的注册表,该验证器绑定到一些TextField和Pickers,并绑定到一个提交按钮。
这些TextField之一是用于电子邮件的。假设我有一个Rest API可以知道给定的电子邮件是否已经注册。
当前,验证程序仅检查给定的电子邮件是否为有效电子邮件。我还想检查它是否已经注册:如果是,验证必须失败,必须禁用提交按钮,并且必须在有问题的TextField下显示一个信息性的Label(在这种情况下,标志图标没有意义)。它不是InputComponent,而是标准的简单TextField。
我不知道该如何实现。谢谢您的支持。
在标签下显示内容很容易,只需在布局下方添加错误标签即可。如果标签为空白,则不会显示,也不会占用空间。
验证代码用于快速客户端验证。您所说的是服务器端验证,这是服务器错误的结果。无论如何,您都需要通过发出请求和失败来分别进行操作。
在这种情况下,可以启用“提交”按钮,因为您不一定要延迟提交,但是如果在完成电子邮件检查之前按下了提交,则可以等待该请求完成。
如果您希望通过验证器模式来完成此操作,则可以仅创建一个首先返回false的验证器(但禁用错误指示),然后在验证器下方的错误中编写“检查电子邮件的可用性”。
收到结果后,您只需更新验证器值并触发输入的重新验证即可。您可以setText()
再次使用应该触发验证的相同文本再次调用。
请注意,如果您在每个数据更改事件上都发出Web服务请求,这将产生非常糟糕的UI体验。键入完成后,您需要使用计时器发送延迟的请求。我想我过去在这里附近张贴过类似的内容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句