我只是想让我的TextField作为必填字段,其中我使用电子邮件和密码为用户登录。请让我知道我如何才能使它成为必需,如果用户不填写,我该如何给他警告。
TextField (
onChanged: (value) {
email=value;
},
style: const TextStyle(color: Colors.black),
decoration: InputDecoration(
fillColor: Colors.grey.shade100,
filled: true,
hintText: "Email",
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
)
),
),
const SizedBox(
height: 30,
),
TextField(
onChanged: (value) {
password=value;
},
style: const TextStyle(),
obscureText: true,
decoration: InputDecoration(
fillColor: Colors.grey.shade100,
filled: true,
hintText: "Password",
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
)
),
),
在Flutter中为TextField
设置验证逻辑的最简单方法是使用TextFormField
代替TextField
并结合Form
部件。
它为你提供了一个叫做validator
的回调,当你在Form Key中调用.validate()
方法时,它就会被调用。
要了解更多关于在Flutter中使用Form
小部件以及TextFormFiled
和验证的信息,请查看此视频。
验证器中使字段为必需的条件示例:
validator: (String? value) {
if (value == null)
{
return 'This field is required';
}
return null;
},
注意:
如果validator
回调返回一条消息,这意味着该消息将显示在TextFormField
的errorText
中,而.validate()
方法将返回false
。
如果validator
回调返回null,这意味着没有错误,.validate()
方法将返回true
。
- 如果用户点击提交按钮,那么您可以检查其电子邮件或密码字段是否为空。