我想让TextField为用户必需



我只是想让我的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回调返回一条消息,这意味着该消息将显示在TextFormFielderrorText中,而.validate()方法将返回false

如果validator回调返回null,这意味着没有错误,.validate()方法将返回true

  1. 如果用户点击提交按钮,那么您可以检查其电子邮件或密码字段是否为空。

最新更新