如何在值更改时验证文本字段



当文本表单字段的值发生变化时,如何自动验证?

我试过

bool _autoValidate = false;
TextFormField(
autovalidate: _autoValidate ,
onChanged: (value) {
setState(() {
_autoValidate = true;
});
},
validator: (value) {
if (value.length < 5) {
return 'False';
} else {
return 'True';
}
},
),

但不起作用,TextFormField在验证时仍然没有显示错误。

我需要一种方法来打开文本更改的验证。

Flutter现在有一个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现在可以在最新的稳定频道上使用。如果它能解决你的问题,请告诉我。

我认为,

TextFormField(              
autovalidateMode: AutovalidateMode.onUserInteraction,
)

是解决这个问题的最佳方法。

最新更新