Ich verwende ein Formular und einige TextFormFields. Ich kann die Benutzereingabe wie folgt überprüfen:
final _form = GlobalKey<FormState>();
void saveForm(){
_form.currentState.validate()
}
//saveForm runs when a save button is pressed.
Ich möchte wissen, ob es möglich ist, die Validierungsfunktion für ein TextField auszuführen, wenn es seinen Fokus verliert oder nicht. (Ich möchte die Eingabe nicht durch Klicken auf eine Schaltfläche validieren und stattdessen die Validierungsfunktion ausführen, wenn der Benutzer das TextField ändert .)
Ich denke, Sie möchten nur autovalidate: true,
in Ihr Formular einfügen. Wenn Sie sich auf Änderungen konzentrieren, ist die Validierung ein Aufruf
Form(
key: _formKey,
autovalidate: true,
child:/*...*/
)
Erstellen Sie Ihr Formular wie
var _formKey = GlobalKey<FormState>();
bool _autoValidate = false;
@override
Widget build(BuildContext context) {
return Form(
key: _formKey,
autovalidate: _autoValidate,
child: /* ... */
),
),
);
}
wenn Sie auf Speichern klicken
void _onSignUpClicked(BuildContext context) {
if (_formKey.currentState.validate()) {
Scaffold.of(context).showSnackBar(SnackBar(content: Text("Successfully sign up")));
} else {
setState(() {
_autoValidate = true;
});
}
}
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen