forms - 如何验证值更改的文本字段?

标签 forms flutter dart

值更改时如何自动验证文本表单字段?
我试过了

bool _autoValidate = false;
TextFormField(
                autovalidate: _autoValidate ,
                onChanged: (value) {
                  setState(() {
                    _autoValidate = true;
                  });
                },
                validator: (value) {
                  if (value.length < 5) {
                    return 'False';
                  } else {
                    return 'True';
                  }
                },
              ),
但不起作用,TextFormField仍然在验证时未显示错误。
我需要一种方法来打开对已更改文本的验证。

最佳答案

Flutter nows具有仅在内容更改时才可验证表单字段的API。您只需要使用autovalidateMode参数并将其设置为AutovalidateMode.onUserInteraction即可。
当用户更改其内容时,以下文本字段将仅验证:

    class HomeScreen extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(),
          body: Center(
            child: TextFormField(
              autovalidateMode: AutovalidateMode.onUserInteraction,
            ),
          ),
        );
      }
    }
有关何时进行验证的更多选项,请参见AutovalidateMode文档。
该API现在可以在最新的稳定 channel 上使用。让我知道是否可以解决您的问题。

关于forms - 如何验证值更改的文本字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64182372/

相关文章:

javascript - 如何表示依赖于其他表单的表单选项

Flutter - 在应用程序的整个生命周期中保持页面静态?

flutter - 如何解决Build失败并出现异常?

flutter - 当我关注另一个 textField 时验证 textField

android - 为什么我在 Flutter AnimatedChecked 中得到了这一点? (自定义油漆)

flutter - StreamProvider未更新列表

css - 单选按钮列表和标签未对齐

database - 用于构建数据库表单的开源选项

Javascript提交表单并重定向当前页面

android - 如何在我的 Flutter 项目中迁移到 AndroidX?