我正在使用Flutter构建用户注册表单。我需要实现以下目标:-
要求用户输入他们首选的用户ID
在 TextFormField 的末尾添加一个按钮,以便用户可以验证是否已使用 User ID 。
单击该按钮时,它将调用验证器函数以仅验证用户ID (而不验证表单中的任何其他字段)
无论使用情况是否单击“验证”按钮,提交表单时,用户ID 仍将得到验证。
我尝试了许多方法,似乎唯一的解决方案是将User ID和其他所有形式拆分为单独的形式。
我可以知道是否有比这更好的解决方案?
答案 0 :(得分:0)
GlobalKey
var _formKey = GlobalKey<FormState>();
_formKey
添加到您的TextFormField
中,表单小部件应仅添加到您要验证的字段。Padding(
padding: EdgeInsets.only(left: 30.0, right: 30.0, bottom: 10.0),
child: Form(
key: _formKey,
child: TextFormField(
maxLines: 1,
style: TextStyle(decoration: TextDecoration.none, color: Colors.grey[900], fontSize: 14.0, fontFamily: 'Montserrat', fontWeight: FontWeight.w500, letterSpacing: 0.0,),
decoration: InputDecoration(labelText: 'Type here...', alignLabelWithHint: true, border: OutlineInputBorder(borderRadius: BorderRadius.circular(5.0),)),
validator: (_post) => _post.toString().trim().length == 0 ? "Empty text" : null,
onSaved: (_post) => _postText = _post.toString().trim(),
),
),
)
void _validateInputs() {
if (_formKey.currentState.validate()) {
_formKey.currentState.save();
// Call your Method
}
}