[英]Flutter - Checking Validation of TextFormField
嗨,我是 flutter 的新手。
如果 textformfield 為空,我使用 TextFormField 小部件來驗證輸入並用 GlobalKey Form 小部件包裝它。
我能問一下它是否可能只檢查至少一個字段不為空然后它是有效的。
TextField A = 空 & TextField B = 非空::有效
TextField A = 非空 & TextField B = empty::有效
TextField A = 空 & TextField B = 空::無效
在這種情況下,有兩個 textformfield A 和 textformfield B 至少一個不能為空,因此它可以是 A 或 B。但如果兩者都為空,則用戶必須填寫一個文本字段。 我的目標是我的所有 textformfield 都有一個驗證,但如果至少一個已填充或不為空,則可以。
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
Form(
key: _formKey,
child: Column(children: [
TextFormField(validator: (value) {
if (value.isEmpty) {
return "Please Fill";
}
}),
TextFormField(validator: (value) {
if (value.isEmpty) {
return "Please Fill";
}
}),
RaisedButton(
child: Text("Submit"),
onPressed: () async {
if (_formKey.currentState.validate()) {
return;
}
_formKey.currentState.save();
//Some Codes
},
)
]),
),
我打算將其更改為 TextField 小部件並使用 setState({}) 檢查是否至少 1 已填充但我不想使用 setState。 有沒有辦法解決我的問題? 謝謝
嘗試這個:
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
Form(
key: _formKey,
child: Column(children: [
TextFormField(validator: (value) {
if (value.isEmpty) {
return "Please Fill";
}
return null;
}),
TextFormField(validator: (value) {
if (value.isEmpty) {
return "Please Fill";
}
return null;
}),
RaisedButton(
child: Text("Submit"),
onPressed: () async {
if (_formKey.currentState.validate()) {
// If the form is valid, display a Snackbar.
Scaffold.of(context).showSnackBar(SnackBar(content: Text('Processing Data')));
}
_formKey.currentState.save();
//Some Codes
},
)
]),
),
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.