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

单击提交按钮时,Angular 7表单验证不会显示错误

问题描述: 单击提交按钮时,Angular 7表单验证不会显示错误。

回答: 在Angular 7中,表单验证错误不会自动显示。您需要手动检查表单的验证状态并相应地显示错误消息。

首先,您需要在组件类中创建一个表单对象,并使用Angular的内置验证器或自定义验证器对表单进行验证。例如,您可以使用必填字段验证器来确保必填字段不为空。

代码语言:txt
复制
import { Component } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';

@Component({
  selector: 'app-your-component',
  templateUrl: './your-component.component.html',
  styleUrls: ['./your-component.component.css']
})
export class YourComponent {
  form: FormGroup;

  constructor(private fb: FormBuilder) {
    this.form = this.fb.group({
      name: ['', Validators.required],
      email: ['', [Validators.required, Validators.email]],
      // 其他表单字段...
    });
  }

  onSubmit() {
    // 手动检查表单验证状态并显示错误消息
    if (this.form.invalid) {
      // 循环检查每个表单字段的错误状态,并显示相应的错误消息
      Object.keys(this.form.controls).forEach(field => {
        const control = this.form.get(field);
        if (control.invalid) {
          // 根据字段名称显示错误消息
          switch (field) {
            case 'name':
              // 显示名称字段的错误消息
              break;
            case 'email':
              // 显示电子邮件字段的错误消息
              break;
            // 其他字段的错误消息...
          }
        }
      });
    } else {
      // 表单验证通过,执行提交操作
    }
  }
}

然后,在HTML模板中,您可以使用Angular的验证指令来显示错误消息。例如,您可以使用*ngIf指令根据表单字段的验证状态来决定是否显示错误消息。

代码语言:txt
复制
<form [formGroup]="form" (ngSubmit)="onSubmit()">
  <div>
    <label for="name">Name:</label>
    <input type="text" id="name" formControlName="name">
    <div *ngIf="form.controls.name.invalid && (form.controls.name.dirty || form.controls.name.touched)">
      <div *ngIf="form.controls.name.errors.required">Name is required.</div>
    </div>
  </div>
  <div>
    <label for="email">Email:</label>
    <input type="email" id="email" formControlName="email">
    <div *ngIf="form.controls.email.invalid && (form.controls.email.dirty || form.controls.email.touched)">
      <div *ngIf="form.controls.email.errors.required">Email is required.</div>
      <div *ngIf="form.controls.email.errors.email">Invalid email format.</div>
    </div>
  </div>
  <!-- 其他表单字段... -->
  <button type="submit">Submit</button>
</form>

在上述示例中,我们使用了*ngIf指令来根据表单字段的验证状态来显示相应的错误消息。通过使用form.controls.fieldName.errors对象,您可以访问该字段的验证错误对象。根据错误对象的不同属性,您可以显示不同的错误消息。

另外,关于腾讯云相关产品和产品介绍的链接地址,由于要求不能提及具体的品牌商,这里建议您访问腾讯云官网或进行相关搜索,以了解他们的云计算解决方案和产品。

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

相关·内容

AngularDart4.0 指南- 表单

您可以创造性地设计控件,将它们绑定到数据,指定验证规则和显示验证错误,有条件地启用或禁用特定控件,触发内置的视觉反馈等等。 Angular通过许多重复的,模板化的任务使处理过程变得简单。...如果您删除了英雄名称,表单将以吸引人注意的风格显示验证错误: ? 请注意提交按钮被禁用,并且输入控件从绿色变为红色。 您将以小步骤构建此表单: 创建英雄模型类。 创建控制表单的组件。...显示和隐藏验证错误消息。 使用ngSubmit处理表单提交。 禁用窗体的提交按钮,直到窗体有效。 建立 按照设置说明创建一个名为表单的新项目。...显示Model(可选) 提交表单目前没有视觉效果。 如预期的演示。 增加代码过后的demo不会教你任何关于表单的新东西。 但是这是一个锻炼一些新获得的绑定技巧的机会。...提交的标志变为真,表格消失。 您将看到表格中显示的英雄模型值(只读)。 ? 该视图包含一个编辑按钮,其单击事件绑定将清除提交的标志。 当您单击编辑按钮,该表消失,并且可编辑的表单重新出现。

17.5K30

表单

一.表单    表单就是一个将用户信息组织起来的容器:           1.表单的内容:       ...:此属性指示服务器上处理表单输出的程序,一般来说,当用户单击表单上的"提交"按钮后信息发送到Web服务器上,由attion属性所指的程序处理如果action为空则默认提交到本页     method:此属性告诉浏览器...语法为:method=(getpost)   post和get的区别     post的方法不不会改变地址栏的状态,表单数据不会显示...    使用get方法提交方式,地址栏发生改变,表单数据不会显示   基于以上两点:post方法提交的数据安全性明显高于get方法提交的数据。...设置了type属性后在密码框输入的字符全都是以黑色实心的来显示,从而实现对数据的处理 单选按钮   用户只能选中一个单选按钮在使用单选按钮,需要一个显示

4.7K90
  • 如何使用AngularJS和PHP为任何位置生成短而独特的数字地址

    ,应用程序应如下所示: 此时,如果您在表单中输入地址信息并尝试单击“ 生成”按钮,则不会发生任何事情。...将文本光标移动到下一个字段不会显示纬度和经度标签,地图上显示的位置也不会更改以反映您输入的信息。让我们启用这些行为。 第6步 - 添加事件监听器 向应用程序添加交互元素有助于保持用户的参与。...如果您再次在浏览器中访问该应用程序,则不会看到其外观或行为的任何新变化。同样,如果您要输入地址并单击“ 生成”按钮,则应用程序仍然不会生成或显示地图代码。...每当用户单击Generate按钮,index.php文件中的代码都会提交表单并调用该processForm函数,该函数在以下createDigitalAddressApp.js位置定义: . . ....当用户提交表单,它会触发一个submit事件,并且事件监听器会调用该fetchadd函数: . . .

    13.2K20

    文档和元素的几何滚动

    还有一个onreset事件处理程序来检测表单的重置。表单提交前将会调用onsubmit程序,如果回调函数的返回值为false则会取消表单提交动作。这是js程序一个用来检查用户的输入错误。...目的是避免不完整或者无效的数据通过网络提交到服务端程序。onsubmit事件只能通过单击提交按钮触发。...同样onreset也是只能通过单击重置按钮来触发,直接调用表单的reset()方法不会触发onreset事件处理程序 用户与表单元素交互它们往往会触发click或change事件,通过定义onclick...如果返回false将会取消提交。直接调用submit()方法的时候,不会验证该过程,将会直接提交给服务器,所以服务器端也要做一遍验证。 正话:window对象的submit事件的一个句柄。...使用场景:对用户表单进行输入的验证 具体的后面有事件,继续写。 其过程如下 先触发onsubmit事件 → 接着调用submit()方法完成提交

    5.2K00

    Java EE实用教程笔记----(6)第六章 Struts 2综合应用案例

    完成后,重新部署运行程序,于登录页上故意不输入任何内容而直接单击“登录”按钮提交后系统显示验证错误提示信息,如图所示: ?...刚进入页面,借书功能是不可用的,但当输入了借书证号后,单击“查询”按钮,会在右边显示该读者所借书籍,同时“借书”按钮变亮,表示可以进行借书操作了,如图所示: ?...当输入正确的借书证号,单击“查询”按钮提交到“selectBook.action”,根据struts.xml配置下面的代码: ?...当单击显示的页面,就把pageNow值传到了Action,Action就会根据pageNow的值查询要显示的list集,这样查询功能就基本完成了。...例如,输入“ISBN”为刚刚添加进去的“978-7-121-23402-6”单击“图书查询”按钮,出现如图所示的页面: ? “图书修改”功能: ?

    1.1K20

    input标签的type属性汇总

    6.提交按钮 提交按钮表单中的核心控件,用户完成信息的输入后一般都需要单击提交按钮才能完成表单数据的提交。...可以对其应用 value属性,改变提交按钮上的默认文本。 7.重置按钮 当用户输入的信息有误时,可单击重置按钮取消已输入的所有表单信息。...10.文件域 当定义文件域,页面中将出现一个“选择文件”按钮和提示信息文本,用户可以通过单击按钮然后直接选择文件的方式,将文件提交给后台服务器。...11.emai类型 emai类型的标记是一种专门用于输入E-mai地址的文本输入框,用来验证emai输入框的内容是否符合E-mai地址格式;如果不符合,将提示相应的错误信息...在提交表单,会自动检查该输入框中的内容是否为数字。如果输入的内容不是数字或者数字不在限定范围内则会出现错误提示。

    2.7K10

    java表单提交方法_表单提交的几种方式

    通用提交按钮–> 2、 提交 3、 说明:用户提交按钮或图像按钮,就会提交表单。...使用或都可以定义提交按钮,只要将其特性的值设置为“submit”即可,而图像按钮则是通过的type特性值设置为”image”来定义的。因此,只要我们单击一下代码生成的按钮,就可以提交表单。...4、阻止表单提交 只要在表单中存在上面列出的任何一种按钮,那么相应表单控件拥有焦点的情况下,按回车键就可以提交表单。如果表单里没有提交按钮,按回车键不会提交表单。...以这种方式提交表单,浏览器会在将请求发送给服务器之前触发submit事件。这样,我们就有机会验证表单数据,并据以决定是否允许表单提交。阻止这个事件的默认行为就可以取消表单提交。...提交表单可能出现的最大问题,就是重复提交表单。在第一次提交表单后,如果长时间没有反映,用户可能会变得不耐烦。这时候,他们也许会反复单击提交按钮

    5K40

    bootstrapValidator 中文API

    提交表单不会执行任何验证。当您要在自定义提交处理程序中提交表单,可能会使用它。 破坏 destroy() - 破坏插件。 它将删除所有错误消息,反馈图标以及关闭插件创建的事件。...option 串 选项名称如果未定义,则该方法返回给定验证器的选项 getSubmitButton getSubmitButton(): jQuery - 返回显示点击的提交按钮的jQuery元素。...null如果没有点击提交按钮返回。 已验证 isValid(): Boolean- true如果所有表单域都有效,则返回。否则返回false。 调用这个之后,确保已经调用了validate方法。...当您需要重新验证其值由其他插件更新的字段使用它。 默认情况下,一旦该字段已经被验证并被标记为有效的插件,该插件就不会重新验证该字段。当与其他插件一起使用时,字段值被更改,因此需要重新验证。...当您想通过单击按钮或链接而不是提交按钮验证表单,这很有用。

    13.2K50

    【Java 进阶篇】创建 HTML 注册页面

    这种关联提高了可访问性,允许用户通过单击标签来选择输入字段。 required:这个属性用于标记字段为必填字段,如果用户未填写将无法提交表单。...当表单提交后,服务器会处理用户的请求,执行相应的操作,并返回结果给用户。 表单验证 在处理用户提交的数据表单验证是至关重要的。它确保输入的数据符合期望的格式和要求,防止恶意数据或错误数据被提交。...验证码:为了防止自动化提交,可以添加验证验证。 成功页面或错误处理 当用户成功提交表单,通常会显示一个成功页面或提供成功的反馈信息。...如果用户提交包含错误的数据,应该向用户显示错误消息,并允许其纠正错误。 在实际应用中,你可以在服务器端脚本中根据处理结果来决定是显示成功页面还是错误消息。...例如,如果用户注册成功,你可以重定向到一个感谢页面,否则,你可以显示一个错误消息页面。 总结 通过本博客,我们学习了如何创建一个简单的HTML注册页面,包括表单元素、标签、输入字段和提交按钮

    38120

    Angular 从入坑到挖坑 - 表单控件概览

    响应式表单 建立表单 由组件隐式的创建表单控件实例 在组件类中进行显示的创建控件实例 表单验证 指令 函数 在表单数据发生变更,模板驱动表单通过修改 ngModel 绑定的数据模型来完成数据更新,...,从而生成错误信息列表 在进行用户输入数据有效性验证,在控件上通过添加一个模板引用变量来暴露出 ngModel,从而在模板中获取到指定控件的状态信息,之后就可以通过获取错误信息列表来进行反馈 <div...在数据验证失败的情况下,对于系统来说,表单是不允许提交的,因此可以将提交事件绑定到表单的 ngSubmit 事件属性上,通过模板引用变量的形式,在提交按钮处进行数据有效性判断,当无效,禁用表单提交按钮...同模板驱动表单的数据有效性验证相同,在响应式表单中同样可以使用原生的表单验证器,在设定规则,需要将模板中控件名对应的数据值的第二个参数改为验证的规则 在响应式表单中,数据源来源于组件类,因此应该在组件类中直接把验证器函数添加到对应的...ngOnInit(): void { } } 在针对多个字段进行交叉验证,在模板页面中,则需要通过获取整个表单错误对象信息来获取到交叉验证错误信息 <div class="form-group

    18.9K20

    Angular 2 表单(下)

    每一个 input 元素都有一个 name 属性, Angular表单模块需要使用它为表单注册控制器。 运行以上实例输出结果如下: {{diagnostic}} 只是用于测试时候输出数据使用。...我们还可以通过 ngModel 跟踪修改状态与有效性验证,它使用了三个 CSS 类来更新控件,以便反映当前状态。...状态 为 true 的类 为 false 的类 控件已经被访问过 ng-touched ng-untouched 控件值已经变化 ng-dirty ng-pristine 控件值是有效的 ng-valid...删除掉 name 字段的数据,显示结果如下所示: 添加一个网站 接下来我们创建一个用于添加网站的表单,在 app/site-form.component.html 添加一个按钮: app/site-form.component.html...通过 ngSubmit 来提交表单 我们可以使用 Angular 的指令 NgSubmit 来提交表单, 并且通过事件绑定机制把它绑定到 SiteFormComponent.submit() 方法上。

    1.7K10

    HTML注入综合指南

    * *现在,当受害者浏览该特定网页,他发现可以使用那些***“免费电影票”了。***当他单击,他会看到该应用程序的登录屏幕,这只是攻击者精心制作的***“ HTML表单”。...但是,当客户端单击*显示为网站官方部分的*有效负载,注入的HTML代码将由浏览器执行。...“提交按钮,新的登录表单显示在网页上方。...** [图片] 现在,只需在“ **代理”**选项卡中进行类似的修改,然后单击**“转发”**按钮即可。从下图可以看到,我们也通过其验证字段破坏了此网页。...[图片] 反映的HTML POST 类似于“获取网页”,这里的**“名称”**和**“反馈”**字段也很容易受到攻击,因为已经实现了**POST方法**,因此表单数据将不会显示在URL中。

    3.8K52

    ExtJs二(实现登录)

    一般的登录窗口都包含用户名、密码和验证码3个文本输入框,还包含有显示验证码的图片、登录和重置按钮。因而需要用到的ExtJS控件包括表单面板、图片、工具栏、按钮和文本字段。...6.接着加入表单面板的提交地址,这里定为Account/Login,就是Account控制器的Login方法,代码如下: url: "Account/Login", 7.因为表单内使用的都是文本字段,因而可以统一做一些定义...登录按钮预设为禁用的。formBind配置的作用是只有在表单内输入符合要求才能使用该按钮,这个设计在Ext JS4也是新加入的,很方便,不再需要自己去写代码实现这个了。...接着完成的是onLogin方法,难度也不大, 就是先调用isValid方法,验证表单是否符合提交要求,然后调用submit方法提交。...其实不调用isValid也行,因为登录按钮只要在isValid为true才能用。

    1.9K20

    angularjs学习第四天笔记(第一篇:简单的表单验证

    第四天,简单的表单验证,今天主要学习了angularjs中的表单验证的一些基本概念及其简单应用  第一、表单验证的简单理解     表单验证是angularjs中比较重要的一个核心功能     表单验证可以结合...true       错误:属性关键词【error】,bool类型,只要有不合法的都为true   第五、简单实现注册页面的表单验证     在实现的方式上,根据不同的体验,大致有三种方式     其一...、对表单输入实时验证,只有表单验证都通过,才提交表单        实现方式:通过控制提交按钮的可用性来实现               ng-disabled="loginForm....} });     其二、先触发提交表单事件,在统一对表单数据验证,只有同验证通过才提交数据到后台处理        实现方式:可以给表单添加一个属性,初始化赋值为...false,只有提交后才赋值为ture             验证结果提示信息,只有该属性值为true,才显示显示错误信息 <!

    1.7K10

    ExtJs二(实现登录)

    一般的登录窗口都包含用户名、密码和验证码3个文本输入框,还包含有显示验证码的图片、登录和重置按钮。因而需要用到的ExtJS控件包括表单面板、图片、工具栏、按钮和文本字段。...6.接着加入表单面板的提交地址,这里定为Account/Login,就是Account控制器的Login方法,代码如下: url: "Account/Login", 7.因为表单内使用的都是文本字段,因而可以统一做一些定义...登录按钮预设为禁用的。formBind配置的作用是只有在表单内输入符合要求才能使用该按钮,这个设计在Ext JS4也是新加入的,很方便,不再需要自己去写代码实现这个了。...接着完成的是onLogin方法,难度也不大, 就是先调用isValid方法,验证表单是否符合提交要求,然后调用submit方法提交。...其实不调用isValid也行,因为登录按钮只要在isValid为true才能用。

    2.1K10

    angularjs学习第四天笔记(第一篇:简单的表单验证

    第四天,简单的表单验证,今天主要学习了angularjs中的表单验证的一些基本概念及其简单应用  第一、表单验证的简单理解     表单验证是angularjs中比较重要的一个核心功能     表单验证可以结合...true       错误:属性关键词【error】,bool类型,只要有不合法的都为true   第五、简单实现注册页面的表单验证     在实现的方式上,根据不同的体验,大致有三种方式     其一...、对表单输入实时验证,只有表单验证都通过,才提交表单        实现方式:通过控制提交按钮的可用性来实现               ng-disabled="loginForm....} });     其二、先触发提交表单事件,在统一对表单数据验证,只有同验证通过才提交数据到后台处理        实现方式:可以给表单添加一个属性,初始化赋值为...false,只有提交后才赋值为ture             验证结果提示信息,只有该属性值为true,才显示显示错误信息 <!

    1.3K20

    AngularDart4.0 指南 原

    指南 了解Angular的基础知识,如本地开发的 安装, 显示数据和接受用户输入,构建简单的表单, 将应用程序服务注入到组件中,以及使用Angular的模板语法。...在编辑器视图的右上方pubspec.yaml: 单击 Enable Dart support. 单击Get dependencies.      ...注意:若上述条件满足,出现错误显示 os error "  " errorno=121 address:....  port:.......当您保存更新代码,该pub工具会检测更改并提供新的应用程序。 学习Angular      你不必阅读文档,如果你是初学者,下方是建议的学习步骤。     1....6.阅读表单,其中涵盖用户界面中的数据输入和验证。     7.阅读依赖注入,了解如何从小型单用途零件构建大型,可维护的应用程序。

    2.7K20

    表单的 9 种设计技巧【下】

    例如下图,引用表格组件的 table.selectedRow.data 属性,将表格当前行的数据作为默认值来自动填充表单,并允许用户修改和提交表单: 图片 技巧 7:输入校验和反馈 在提交表单到数据库之前进行数据校验...如下图,当电子邮件输入为空,触发全局提示: 图片 图片 技巧 8:成功提交后重置到默认值 一般情况下,在提交表单后自动清除输入是很重要的。...图片 但在一些特殊情况下,一些表单项的输入值需频繁复用,此时可以在表单中添加一个清除按钮,并配置好单击事件的动作,让用户自己决定是否清除和重置输入。...图片 图片 注意 不要将「清除」按钮放在「提交按钮附近的位置,否则用户可能将原本打算提交的内容不小心清除了。...当涉及到更新表格中的一条记录,最佳做法是将表单放入对话框中,当用户点击链接或按钮,再自动弹出填充了默认值的表单,而不是将表单一直静态展示在表格旁边,防止用户在浏览表单不小心编辑数据。

    2.4K00

    JavaScript(十三)

    提交表单可能出现的最大问题,就是重复提交表单。解决这一问题的办法有两个: 在第一次提交表单后就禁用提交按钮 利用 onsubmit 事件处理程序取消后续的表单提交操作。...重置表单 在用户单击重置按钮表单会被重置。使用 type 特性值为 “reset” 的 input 或 button 都可以创建重置按钮,如下: <!...用户单击重置按钮重置表单,会触发 reset 事件,利用这个机会,我们可以在必要时取消重置操作。 表单字段 可以像访问页面中的其他元素一样,使用原生 DOM 方法访问表单元素。...浏览器自己会根据标记中的规则执行验证,然后自己显示适当的错误消息(完全不用 JavaScript 插手)。 只有在某些情况下表单字段才能进行自动验证。...--这里插入表单元素--> 为了指定点击某个提交按钮不必验证表单,可以在相应的按钮上添加 formnovalidate 属性: <form method="post" action

    3.3K20
    领券