首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我的表单键在flutter中无法验证,即使我在表单中将其用作键并输入合适的值之后也是如此

在Flutter中,表单验证是通过使用Form组件和TextFormField组件来实现的。如果你的表单键在Flutter中无法验证,即使输入了合适的值,可能是由于以下几个原因:

  1. 表单键没有与Form组件关联:确保你的表单键被包裹在Form组件中。Form组件是一个特殊的容器,用于管理表单字段和验证。
  2. 没有使用TextFormField组件:TextFormField是Flutter提供的一个用于输入文本的组件,它可以与表单验证一起使用。确保你使用了TextFormField组件来接收用户输入。
  3. 没有设置验证规则:TextFormField组件提供了一个validator属性,用于设置验证规则。你可以通过传递一个验证函数来定义验证规则。验证函数接收用户输入的值作为参数,并返回一个字符串作为错误提示,如果返回null,则表示验证通过。

以下是一个示例代码,演示了如何在Flutter中进行表单验证:

代码语言:txt
复制
import 'package:flutter/material.dart';

class MyForm extends StatefulWidget {
  @override
  _MyFormState createState() => _MyFormState();
}

class _MyFormState extends State<MyForm> {
  final _formKey = GlobalKey<FormState>();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Form Validation'),
      ),
      body: Form(
        key: _formKey,
        child: Column(
          children: [
            TextFormField(
              validator: (value) {
                if (value.isEmpty) {
                  return 'Please enter some text';
                }
                return null;
              },
            ),
            ElevatedButton(
              onPressed: () {
                if (_formKey.currentState.validate()) {
                  // 验证通过,执行提交操作
                }
              },
              child: Text('Submit'),
            ),
          ],
        ),
      ),
    );
  }
}

void main() {
  runApp(MaterialApp(
    home: MyForm(),
  ));
}

在上面的示例中,我们创建了一个简单的表单,其中包含一个TextFormField组件和一个提交按钮。TextFormField的validator属性设置了一个验证函数,用于检查用户输入是否为空。当用户点击提交按钮时,我们通过调用_formKey.currentState.validate()来触发表单验证。

如果验证通过,你可以执行提交操作。如果验证不通过,TextFormField会自动显示错误提示。

对于Flutter中的表单验证,你还可以使用其他高级的验证规则,例如正则表达式、最大长度、最小长度等。你可以根据具体的需求来定义验证函数。

关于Flutter的表单验证,你可以参考以下链接获取更多信息和示例代码:

希望以上信息对你有帮助!如果你有任何其他问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

那些你从不使用 HTML 属性,背后竟然大有文章,赶快了来了解下

这可能会有所不同,具体取决于用户设备。 只是强调一下,这个属性不接受自定义;该需要是上面显示七个之一。无法识别的将默认为输入设备默认文本。...或者,您可以提供一个,浏览器将其用作下载资源建议文件名。...表单字段form属性 大多数情况下,您会将表单输入和控件嵌套在元素。...但是,如果您应用程序或布局需要一些不同东西,您可以选择将表单输入放在您想要任何位置,并将其与任何元素相关联——即使不是元素父元素。... 用于预加载响应式图像imagesizes和imagesrcset属性 这是研究本文时另一对新属性,它们规范也是相对较新

1.5K30

你不知道HTML

iOS 设备上,回车文本会随着颜色而变化,具体取决于,如下面的屏幕截图所示。这可能会有所不同,具体取决于用户设备。...[enterkeyhint - 完成] [enterkeyhint - 下一步] 只是强调一下,这个属性不接受自定义;该需要是上面显示七个之一。无法识别的将默认为输入设备默认文本。...或者,您可以提供一个,浏览器将其用作下载资源建议文件名。...表单字段form属性 大多数情况下,您会将表单输入和控件嵌套在元素。...但是,如果您应用程序或布局需要一些不同东西,您可以选择将表单输入放在您想要任何位置,并将其与任何元素相关联——即使不是元素父元素。

4.2K164
  • YubiKey 怎么玩:绑定 BitLocker

    而正好智能卡也是 YubiKey 功能之一,如果你也像 reizhi 一样厌倦了每次输入密码进行解锁,不妨将 YubiKey 添加为 BitLocker 解锁方式,这样每次解锁只需要输入 PIN 即可...绑定之后,使用主密码或者 YubiKey PIN 都能够解锁硬盘,所以如果 YubiKey 意外丢失并不会导致无法解锁。...图片 首先在开始菜单键入 gpedit.msc 并回车,本地组策略编辑器窗口中定位到:计算机配置 – 管理模板 – BitLocker 驱动器加密 – 验证智能卡证书使用合规性,点选已启用。...图片 开始菜单键入 certmgr.msc 并回车,证书管理器窗口中定位到:个人 – 证书,找到刚刚创建名为 BitLocker 证书,右键点选 所有任务 – 导出。...如果后续不会再增加新 YubiKey 或者同类智能卡硬件,导出 cert.pfx 可以直接文件粉碎。反之则请将其保存在安全位置,牢记导出时设置证书密码。

    2.6K00

    如何使用 CAPTCHA 保护您 WordPress 网站

    除非您以前从未上网,否则您肯定会遇到过 CAPTCHA 测试——可能每个版本也是如此。...如果您想将其添加到您创建任何表单,还有一个 reCAPTCHA 选项。 PS 如果您使用是 Divi,reCAPTCHA 已经包含在我们一些模块!...将它们复制粘贴到 WordPress 插件设置页面上相应框启用表单旁边,选择您想要 WordPress CAPTCHA 测试位置。...这是登录页面现在样子: 您应该在 WordPress 何处启用验证码? 使用 WordPress CAPTCHA 来保护用户输入信息网站任何部分是一个好主意。...考虑将 CAPTCHA 添加到以下内容: 联系表格 内容提交 电子邮件注册表单 登录页面 密码恢复页面 调查 用户登记 如果授权用户可以访问您网站,或者访问者可以提交信息,那么这也是黑客门户。

    3.5K00

    Gmail XSS漏洞分析

    当我尝试将这些向量任何一个发送到 Gmail 时,很快发现要么有第二个过滤器起作用,要么是一个完全不同 AMP 版本,有另外安全验证。...在这篇文章将介绍如何设法让其中一个初始向量绕过安全验证并到达收件箱。...或者恰恰相反,将真正标签视为假忽略它。 正如我上面提到已经有一个向量成功触发了 AMP playground XSS,但无法绕过 Gmail 过滤器。...但是当浏览器(此时仍然渲染 CSS)遇到这个标签时,它会将其视为格式错误 CSS,真正 标签处终止样式渲染带有其onerror属性 标签,从而触发 XSS...HTML 实体情况下终止标签('') AMP 中看起来还可以,但在 Gmail 无法使用。

    33820

    带你认识 flask 全文搜索

    计算机上安装Elasticsearch后,你可以浏览器地址栏输入http://localhost:9200来验证它是否正在运行,预期返回结果是JSON格式服务基本信息。...如果变量未定义,将设置其为None,并将其用作禁用Elasticsearch信号。...传递给Elasticsearch所有调用不仅将这个名称用作索引名称,还将其用作文档类型,一如我Python控制台示例中所做那样。...测试数据库有几条用户动态包含数字“one”,“two”, “three”, “four” 和“five”,因此将其用作搜索查询。...不幸是,该方法只适用于通过POST请求提交表单,所以对于这个表单需要使用form.validate(),它只验证字段,而不检查数据是如何提交

    3.5K20

    为什么从复杂机器学习模型开始并不是一个好主意

    当我开始研究数据科学时,着迷于神经网络及其如此复杂应用强大功能。例如,计算机视觉和自然语言处理(NLP)中有应用。由于它们强大功能,只是想在每个问题中开始使用它们。但是必须冷静下来!...之后对RandomizedSearchCV进行了艰苦工作,以选择最佳参数。尽管我做了很多辛苦工作,但仍无法达到90%加入Codenation。所以我感到沮丧,放弃了。 因祸得福.....首先,检查了数据库,看是否已使用了一些NaN。这些被替换为0,因为当学生退学时,不得不处理它。之后意识到这些功能之间存在一定关联。想法是获得最高功能使用它们来预测数学分数。...因此,决定将它们用作简单线性回归模型预测器功能,如下所示。...即使您认为该模型对完成艰巨任务是如此简单,您也应该给它一个机会。也许无法获得高分或结果。但是,它可以成为验证其他模型是否在帮助您改善得分手起点。

    53220

    「学习笔记」HTML基础

    Pragma(cache模式),是用于设定禁止浏览器从本地机缓存调阅页面内容,设定后一旦离开网页就无法从Cache再调出 Refresh(刷新),自动刷新指向新页面。...src是source缩写,指向外部资源位置,指向内容将会嵌入到文档当前标签所在位置;在请求src资源时会将其指向资源下载应用到文档内,例如js脚本,img图片和frame等元素。...表单域: 它相当于一个容器,用来容纳所有的表单控件和提示信息,可以通过他定义处理表单数据所用程序url地址,以及数据提交到服务器方法。如果不定义表单域,表单数据就无法传送到后台服务器。...HTML输入框可以拥有自动完成功能,当你往输入输入内容时候,浏览器会从你以前同名输入历史记录查找出类似的内容并列输入框下面,这样就不用全部输入进去了,直接选择列表项目就可以了。...2、src是指向外部资源位置,指向内容将会嵌入到文档当前标签所在位置;在请求src资源时会将其指向资源下载应用到文档内,例如js脚本,img图片和frame等元素。

    3.7K20

    【译】开始学习React - 概览和演示教程

    也是人们如此热爱React原因之一。...你会注意到我已经向每个行添加了一个索引。React创建列表时,应始终使用key(),因为它们有助于识别每个列表项。我们还将在需要操纵列表项时刻看到这是必要。...首先,我们将使该函数每次对输入进行更改时都将运行。event将传递,我们将设置Form状态为输入name()和value()。...渲染,让我们从state获取两个属性,并将它们分配为正确表单键对应。我们将把handleChange()作为输入onChange运行,最后导出Form组件。...我们可以创建,添加和删除用户。由于Table和TableBody已经从状态拉出,因此将正确显示。 ? 如果你有疑问,你可以github上查看源码。

    11.2K20

    HTML 表单和约束验证完整指南

    即使今天,开发人员仍花费大量时间编写函数来检查字段。这在现代浏览器仍然必要吗?可能不是。大多数情况下,这实际上取决于您要尝试做什么。...使用正确字段typeautocorrect提供在 JavaScript 难以实现好处。...你可以: 停止验证,直到用户与字段交互或提交表单 使用自定义样式显示错误消息 提供仅在 HTML 无法实现自定义验证。...形式技巧 表单是所有 Web 应用程序基础,开发人员花费大量时间处理用户输入。约束验证得到很好支持:浏览器可以处理大多数检查显示适当输入选项。 建议: 尽可能使用标准 HTML 输入类型。...(例如,当您输入无效电子邮件地址时,IE 不会检测到。)您仍然需要验证服务器上数据,因此请考虑将其用作 IE 错误检查基础。

    8.3K40

    Flutter基本路由、命名路由、替换路由,返回到根路由

    Flutter路由,通俗地讲就是页面跳转。Flutter通过 Navigator 组件管理路由导航。 Flutter给我们提供了两种配置路由跳转方式:基本路由和命名路由。...命名路由 上文中介绍了Flutter普通路由,小项目中使用普通路由是比较合适,但是一些大型商业项目中,我们最好还是统一管理路由,即使用命名路由。...总结 关于命名路由使用前前后后,该文中都做了详细总结,并且做了代码分离,后续项目中,我们可以参考该文进行命名路由配置。 替换路由 前文中我们了解了Flutter普通路由和命名路由。...首先,我们先来考虑一个场景:APP注册页面,可能要分好几步才能注册成功,比如输入手机号——输入验证码——输入密码,然后注册成功,注册成功之后跳转到登录页面,登录页面登陆成功之后返回到主页面。...那么绝大部分情况下,我们页面跳转时候,还是采取普通命名路由跳转方式(而不是采取替换路由),此时,跳转到多级页面之后,如何一返回到主页面呢?

    9.1K21

    是一个索引

    关系型数据库是一名索引 (Index)。 大家都知道,通常情况下都会带来查询性能提高。 需要指出是,并不是多多益善。 类似于一本书目录,只不过书内容是静态,而数据是动态变化。...可以想像,如果书中内容页频繁变化,那么更新书目录也会花掉不少成本。所以说,不是多多益善。 是数据库中一个排序数据结构,以协助快速查询、更新数据库数据。...如果深入了解加以合理运用,可以对查询性能有成百上千倍提高。 今天,你需要知道,哪些 SQL 条件有可能走索引,哪些一定不会走索引,建索引时时如何确定字段顺序?..._03 索引,此时 DB2 不用访问磁盘上表数据页,只需要扫描索引就可以得到对应列。...正因如此设计新索引时候,我们也就无需去考虑这种不是 Boolean-term 谓词。

    81130

    「应用安全」OAuth和OpenID Connect全面比较

    授权服务器必须首先验证资源所有者身份。授权服务器验证资源所有者方式(例如,用户名和密码登录,会话cookie)超出了本规范范围。 尽管如此,“OAuth身份验证”一词泛滥使人们感到困惑。...这种混淆不仅在商业方面,而且工程师也是如此。例如,“OAuth授权与身份验证”之类问题有时会发布到Stack Overflow(对问题回答是这个)。...但是,无法相关规范中找到此类信息。 无论如何,认为在为客户端应用程序定义数据库时,应该存在客户端类型列。 您可以问题991找到关于此一些讨论。 6.2。...“OpenID Connect动态客户端注册1.0客户端元数据”。它表示客户端应用程序要求授权服务器用作ID令牌签名算法算法。如上所述,有效RFC 7518,应注意不允许任何。...这使得自包含样式听起来更好,但是因为必须对授权服务器进行查询以检查访问令牌是否已被撤销,即使采用自包含样式,在任何情况下,网络通信也是如此。每次客户端应用程序呈现访问令牌时都需要。

    2.5K60

    开始使用MongoDB之前应该知道14件事

    服务器上使用默认端口安装而不启用身份验证自找麻烦,尤其是可以查询运行任意JavaScript时(例如把$where作为注入攻击载体)。 ...像Studio 3T这样工具使构建准确MongoDB聚合查询变得更容易。它聚合编辑器特性使你可以一次对一个阶段应用管道操作符,你可以每个阶段验证输入和输出,更便于调试。...但愿那是最后阶段完成结果过滤之后,从而减少需要排序数据量。即使在那个时候,你需要一个可以覆盖排序索引。单键索引或混合索引都可以。...忘记哈希对象中键序意义 JSON,一个对象包含一个无序集合,而该集合中有零个或多个名/对,其中名是一个字符串,而是一个字符串、数值、布尔、空、对象或数组。...limit()就是为了满足这个要求,但是,它永远不应该出现在最终版本代码,除非你首先使用了sort。这是因为,不这样的话,你就无法保证结果顺序,你就无法可靠地“按页浏览”数据。

    4.5K20

    使用 MongoDB 之前应该知道 14 件事

    像 Studio 3T 这样工具使构建准确 MongoDB 聚合查询变得更容易。它聚合编辑器特性使你可以一次对一个阶段应用管道操作符,你可以每个阶段验证输入和输出,更便于调试。...但愿那是最后阶段完成结果过滤之后,从而减少需要排序数据量。即使在那个时候,你需要 一个可以覆盖排序索引 。单键索引或混合索引都可以。...忘记哈希对象中键序意义 JSON ,一个对象包含一个无序集合,而该集合中有零个或多个名/对,其中名是一个字符串,而是一个字符串、数值、布尔、空、对象或数组。...$limit() 就是为了满足这个要求,但是,它永远不应该出现在最终版本代码,除非你首先使用了$sort。这是因为,不这样的话,你就无法保证结果顺序,你就无法可靠地“按页浏览”数据。...最好是理解领会这些差别。强迫 MongoDB 开发人员按照 RDBMS 方式做事就太遗憾了,希望继续看到解决旧问题有趣新方法,如确保数据完整性、使数据系统具有从故障和恶意破坏恢复能力。

    1.9K30

    再见卷积神经网络,使用Transformers创建计算机视觉模型

    最佳模型应该能够表示单词之间这些相关性,即使处理这些单词可能距离较远大型文本时也是如此。我们说具有这种能力模型可以编码长期依赖性。...它们以顺序方式工作,一次处理一个令牌,保留模型已经看到所有这些令牌“内存”,以便将其某些语义添加到需要它们其他单词。...自注意力会将嵌入到输入文本每个单词线性地投影到三个不同空间中,从而产生三个新表示形式,称为查询,。...卷积归纳偏置 卷积模型已经计算机视觉领域占据了主导地位,取得了巨大成功。卷积可以使用GPU有效地并行化,当从图像中提取特征时,它们可以提供合适归纳偏差。...这些工作已经目标检测、视频分类、图像分类和图像生成等多个领域计算机视觉基准显示了良好结果。其中一些架构能够匹配或优于SOTA结果,即使摆脱了卷积层完全依赖于自我关注时也是如此

    93220

    Flutter 凉了吗?

    几年前,Android和iOS开发略有涉足,使用是Java和Objective-C。花了大约一个月时间学习后,决定不再深入学习了。就是无法找到那种深入其中状态。...更像是一个后端开发人员,所以当涉及到严重依赖它东西时,只想要一些简单东西。这就是Flutter眼中闪耀地方。 UI通过将不同小部件组合在一起修改它们以适合你App外观来创建。...你可以通过手动更改字体,颜色,逐个设置所有内容,但这需要太长时间了。相反,Flutter为我们提供了一个名为ThemeData东西,它允许我们为颜色,字体,输入字段等等设。...从数据库检索数据后,可以使用一个模型将其转换为对象。或者,如果要将对象存储在数据库,可以使用相同模型将其转换为JSON。 如果没有将其显示给用户方法,这些数据就不是那么有用了。...如果你是做移动App开发并且尚未尝试过Flutter强烈建议你试一下,因为相信你也会爱上它。使用Flutter几个月之后认为可以说这是移动开发未来。

    3.1K20

    NoSQL和数据可扩展性

    提示:图形数据库是复杂关系模型优秀替代品,因为实体(或图形边缘)之间关系比使用显式Join和外更有效,更适合于高性能应用程序。对于诸如最小距离或子图比较计算复杂图遍历算法尤其如此。...注意:您可以GitHub网站上找到所有代码。您必须自己下载DynamoDB并在运行这些文件之前将其解包到ext文件夹。...从示例应用程序文件夹输入: DEBUG = express:* npm start 过了一会儿,你会看到“3000端口上运行” 现在打开浏览器http// localhost:3000/ 您将看到一个欢迎页面和两个搜索表单...这些表单无法正常工作,因为我们需要为DynamoDB配置AWS访问。 配置AWS安全性 为了使用DynamoDB,您需要注册一个免费AWS账户,生成Access Key。...AWS管理控制台中,搜索DynamoDB服务。 点击,你应该看到这样列表。 通过点击“电影”,您可以“物料”查看表格项目,访问应用程序指标,查看“容量”选项卡估计每月成本。

    12.2K60

    带你认识 flask web 表单

    那就继续在你虚拟环境安装Flask-WTF吧: 由于今天电脑出问题了,重装系统之后,还没安装 anaconda3 今天无法演示了,抱歉了。...你一些字段中看到可选参数validators用于验证输入字段是否符合预期。DataRequired验证器仅验证字段输入是否为空。更多验证器将会在未来表单接触到。...HTML元素被用作Web表单容器。表单action属性告诉浏览器提交用户表单输入信息时应该请求URL。...它告诉Flask这个视图函数接受GET和POST请求,覆盖了默认GET。HTTP协议规定对GET请求需要返回信息给客户端(本例是浏览器)。本应用所有GET请求都是如此。...完善字段验证 表单字段验证器可防止无效数据被接收到应用。应用处理无效表单输入方式是重新显示表单,以便用户进行更正。

    2.3K20
    领券