dart - Flutter 中的文本字段验证

标签 dart flutter

我正在开发 Flutter TextField 小部件。如果用户没有填写 TextField,我想在 TextField 小部件下方显示一条错误消息。在这种情况下,我只需要使用 TextField 小部件而不是 TextFormField

最佳答案

你想要的一个最小的例子:

class MyHomePage extends StatefulWidget {
  @override
  MyHomePageState createState() {
    return new MyHomePageState();
  }
}

class MyHomePageState extends State<MyHomePage> {
  final _text = TextEditingController();
  bool _validate = false;

  @override
  void dispose() {
    _text.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('TextField Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text('Error Showed if Field is Empty on Submit button Pressed'),
            TextField(
              controller: _text,
              decoration: InputDecoration(
                labelText: 'Enter the Value',
                errorText: _validate ? 'Value Can\'t Be Empty' : null,
              ),
            ),
            RaisedButton(
              onPressed: () {
                setState(() {
                  _text.text.isEmpty ? _validate = true : _validate = false;
                });
              },
              child: Text('Submit'),
              textColor: Colors.white,
              color: Colors.blueAccent,
            )
          ],
        ),
      ),
    );
  }
}

关于dart - Flutter 中的文本字段验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53424916/

相关文章:

flutter - 未定义命名参数子项

dart - 从 Future/Stream 返回字符串列表

dart - 使用 Dart 在 flutter 中创建 TableView

android - 从 Flutter 访问硬件按钮(如音量按钮)

Flutter2 升级 : Why build_runner package is not null-safe

.net - 使用Dart程序消耗.asmx或?WSDL

Flutter StreamBuilder 加载时移除旧数据

android - 使用 frida 绕过 flutter 应用程序的 Sslpinning 中的空地址

flutter - 如何在2种颜色的 flutter 中创建Flatbutton?不渐变,并排2种纯色

flutter - 将 Apache-Kafka 与 Flutter/darts 结合使用