首页 > 解决方案 > Flutter - 焦点更改时的文本字段反应

问题描述

我制作了一个程序,用户可以在其中创建帐户,但我对文本字段设置了一些限制(比如名字,它只能接受由 AZ 或 az 组成的字符串)。

如果输入错误(例如用户键入“John1”),我希望在文本字段下显示“错误文本”,但我不知道该怎么做。简单的方法是使用onEditingComplete但这仅在用户点击键盘上的“完成”键时才有效。

当焦点从一个文本字段更改为另一个文本字段时,有没有办法使“错误文本”出现?

标签: flutter

解决方案


您可以使用文本字段的验证器属性来执行此操作。建议将您的字段封装在一个Form()小部件中,然后使用该FormTextField()小部件来实现您的验证,如果焦点更改或尝试提交,这将在文本字段的底部显示错误。

例子:

TextFormField(
  onSaved: (String value) {},
  validator: (String value) {
    if (value.isEmpty) {
     return 'Please enter some text';
    }
    return null;
  },
)

错误将以红色字体显示在下方。


推荐阅读