向日期 TextFormField 添加验证

问题描述 投票:0回答:1

我面临验证文本字段的问题。 此处您需要以 dd.mm.yyyy 格式输入日期。我还为此表单使用 flutter_multi_formatter 包。

import 'package:flutter/material.dart';
import 'package:flutter_multi_formatter/formatters/masked_input_formatter.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(home: StartPage());
  }
}

class StartPage extends StatelessWidget {
  const StartPage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Padding(
        padding: const EdgeInsets.symmetric(vertical: 300, horizontal: 50),
        child: TextFormField(
          onChanged: (val) {},
          keyboardType: TextInputType.number,
          decoration: const InputDecoration(hintText: 'dd.mm.yyyy'),
          inputFormatters: [MaskedInputFormatter('##.##.####')],
        ),
      ),
    );
  }
}

例如,用户将开始输入不正确的日期格式:32.13.2009。我希望带有错误通知的文本出现在该表单下方。如果输入的日期不正确,是否可以为此表单添加验证?也许最好解析输入的文本并使用条件来比较数字。我会很高兴任何帮助。

flutter dart validation
1个回答
0
投票

我建议你看看flutter本身提供的Flutter Form Validation文档。

示例:

TextFormField(
            // The validator receives the text that the user has entered.
            validator: (value) {
              if (value == null || value.isEmpty) {
                return 'Please enter some text';
              }
              return null;
            },
          ),
© www.soinside.com 2019 - 2024. All rights reserved.