我正在填写电子邮件textFormField并使用keyboardType:TextInputType.emailAddress。我希望键盘在TextFormField内部仅使用小写字母。怎么办呢?
这是我正在使用的TextFormField。
TextFormField(
validator: (value) {
return value.isEmpty
? 'Please enter your email address.'
: RegExp(r"^[a-zA-Z0-9.a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[a-zA-Z0-9]+\.[a-zA-Z]+")
.hasMatch(value)
? null
: 'Please enter a valid email.';
},
controller: _emailController,
keyboardType: TextInputType.emailAddress,
onChanged: (value) {
email = value.toLowerCase();
},
decoration: kTextFieldDecoration.copyWith(
hintText: 'Enter your email',
prefixIcon: Icon(
Icons.email,
color: Color(0x759E9E9E),
),
suffixIcon: IconButton(
icon: Icon(
Icons.clear,
),
splashRadius: 25.0,
onPressed: () {
setState(() {
_emailController.clear();
});
},
),
),
),
答案 0 :(得分:0)
像这样修改TextFormField
validator
:
return Form(
autovalidate: true,
child: Container(
TextFormField(
validator: (String val) {
if (val.isEmpty)
return 'We need something to search for';
else
{
// Use your TextEditingController to get text
_textController.text=val.toLowerCase();
setState((){});
return null;
},
},
),
),
);
编辑:您已编辑问题: 像这样修改验证器:
validator: (value) {
if(value.isEmpty) return 'Please enter your email address.';
else{
_emailController.text=value.toLowerCase();
setState((){});
return RegExp(r"^[a-zA-Z0-9.a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[a-zA-Z0-9]+\.[a-zA-Z]+")
.hasMatch(value)
? null
: 'Please enter a valid email.';
}
},