angular10 ngSumit 绑定的回调函数如何被触发

1 篇文章 0 订阅

问题原因

type
button 的类型。可选值:

  • submit: 此按钮将表单数据提交给服务器。如果未指定属性,或者属性动态更改为空值或无效值,则此值为默认值。
  • reset: 此按钮重置所有组件为初始值。
  • button: 此按钮没有默认行为。它可以有与元素事件相关的客户端脚本,当事件出现时可触发。
  • menu: 此按钮打开一个由指定menu元素进行定义的弹出菜单。

也就是说不指定button元素不指定type 类型,默认是submit 类型。

问题描述

填写好账号名密码点击按钮或者按下enter 键时会触发form表单的submit 事件,formGroup 指令会监听此事件,进而触发ngSubmit 事件,故而ngSubmit 的回调触发执行,打印出submitting {username: 'xx', password: 'xx'}。 理论上只有form 下面button 的type 是submit 才会主动触发form 表单的submit 事件,但是html中button 并没有type="submit"属性,所以表单的ngSubmit 事件到底如何触发??

主要代码如下,component 代码:

ngOnInit() {
    this.form = this.fb.group({
      username: ['', Validators.required],
      password: ['', Validators.required],
    })
  }

submit() {
    console.log('submitting', this.form.value); // submitting {username: 'xx', password: 'xx'}
}

html 模板代码:

<form [formGroup]="form" (ngSubmit)="submit()">
	<label>账号名 <input type="text" formControlName="username"/></label>
	<label>密码 <input type="text" formControlName="password"></label>
	<button [disabled]="!form.valid">提交</button>   
</form>

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值