我已经创建了两个名为开始日期和结束日期的文本字段,应该只接受格式为yyyy/mm/dd的日期。现在用户可以输入任何格式。如何设置验证用户输入的日期在yyyy/mm/dd。
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Flexible(
child: Padding(
padding: const EdgeInsets.all(3.0),
child: TxtField(
fillColor: Cultured,
labelText: 'Start Date',
hintText: '2022-01-10',
onChanged: (value) => context
.read<CareRequirementsScreenBloc>()
.add(StartDateChanged(value)),
),
),
),
Flexible(
child: Padding(
padding: const EdgeInsets.all(3.0),
child: TxtField(
fillColor: Cultured,
labelText: 'End Date',
hintText: '2022-01-10',
onChanged: (value) => context
.read<CareRequirementsScreenBloc>()
.add(EndDateChanged(value)),
),
),
),
],
),
这里的TxtField是我使用TextFormField创建的自定义文本字段
3条答案
按热度按时间hyrbngr71#
使用
DatePicker
代替键盘,以确保格式正确。kyks70gy2#
您真的应该使用DatePicker:What is the correct way to add date picker in flutter app?
如果你坚持用非标准的方式来做,你可以使用FilteringTextInputFormatter:Flutter - Regex in TextFormField
d4so4syb3#
您可以将其用作
inputFormatters
,将TextInputType.number
用作keyboardType
。