值更改时如何自动验证文本表单字段?
我试过了
bool _autoValidate = false;
TextFormField(
autovalidate: _autoValidate ,
onChanged: (value) {
setState(() {
_autoValidate = true;
});
},
validator: (value) {
if (value.length < 5) {
return 'False';
} else {
return 'True';
}
},
),
但不起作用,TextFormField
仍然在验证时未显示错误。我需要一种方法来打开对已更改文本的验证。
最佳答案
Flutter nows具有仅在内容更改时才可验证表单字段的API。您只需要使用autovalidateMode
参数并将其设置为AutovalidateMode.onUserInteraction
即可。
当用户更改其内容时,以下文本字段将仅验证:
class HomeScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: Center(
child: TextFormField(
autovalidateMode: AutovalidateMode.onUserInteraction,
),
),
);
}
}
有关何时进行验证的更多选项,请参见AutovalidateMode文档。该API现在可以在最新的稳定 channel 上使用。让我知道是否可以解决您的问题。
关于forms - 如何验证值更改的文本字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64182372/