flutter - Flutter - 焦点更改时的文本字段反应
问题描述
我制作了一个程序,用户可以在其中创建帐户,但我对文本字段设置了一些限制(比如名字,它只能接受由 AZ 或 az 组成的字符串)。
如果输入错误(例如用户键入“John1”),我希望在文本字段下显示“错误文本”,但我不知道该怎么做。简单的方法是使用onEditingComplete但这仅在用户点击键盘上的“完成”键时才有效。
当焦点从一个文本字段更改为另一个文本字段时,有没有办法使“错误文本”出现?
解决方案
您可以使用文本字段的验证器属性来执行此操作。建议将您的字段封装在一个Form()
小部件中,然后使用该FormTextField()
小部件来实现您的验证,如果焦点更改或尝试提交,这将在文本字段的底部显示错误。
例子:
TextFormField(
onSaved: (String value) {},
validator: (String value) {
if (value.isEmpty) {
return 'Please enter some text';
}
return null;
},
)
错误将以红色字体显示在下方。
推荐阅读
- pandas - 添加存储在数据框中的列表
- python - AttributeError: Can only use .str accessor with string values, which use np.object_ dtype in pandas
- javascript - 更改打印数字的输出格式
- webpack - 当我在 Webpack 中使用它们时,我仍然可以看到我的 ENV 变量
- c# - XmlIgnore 不忽略
- mongodb - MongoDB 加入 2 个表并且选择字段为空
- express - 使用来自突变解析器的 GraphQL Yoga 响应自定义 HTTP 代码
- javascript - D3JS:帮助使用 D3js 在圆圈内创建 SVG 文本元素
- javascript - dataTables 从格式化数字中搜索数字
- linux - mongodb服务重启后失败