1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Angular【form 表单】自动提交问题

Angular【form 表单】自动提交问题

时间:2024-06-29 02:24:02

相关推荐

Angular【form 表单】自动提交问题

:: 问题

使用angularform表单,表单内任意input输入框聚焦时,点击键盘上的enter键,form表单会自动提交,即:若表单内存在button控件,且绑定了事件,那个便会执行第一个button控件的click事件,事例如下:

<form #form="ngForm" novalidate autocomplete="off"><div class="formWrap"><div class="fieldBox"><div class="label">昵称:</div><div class="value"><input class="valInner" name="nickname" [(ngModel)]="formObj.nickname" required placeholder="请输入昵称"></div></div><div class="footerWrap"><button class="close btn" (click)="handleCloseModal()">关闭</button><button class="submit btn" (click)="handleSubmit()">确定</button></div></div></form>

:: 分析

其中的handleCloseModalhandleSubmit为自定义方法,这里不需要form表单自动触发,但是,当表单内的input输入框聚焦时点击键盘上的回车键/enter就会触发第一个button按钮上的click事件,这是form表单自身的默认行为,基于buttontype属性,即这里指type='submit',所以就被表单主动触发了

:: 引用说明 ::

当用户点击提交按钮(button 或 input type=“submit”),亦或是在表单里输入时(e.g. <input type=“text”>)按下Enter键,submit事件将会被触发。

一个元素,表示发送submit事件的表单元素。通常是type属性是submit的 input 元素或者 type 属性是submit的 button 元素,但它也可能是启动提交过程的其他元素。

:: 解决方式

在不使用默认提交行为的情况下,可使用如下方式处理

1、在表单内的button控件上添加type='button'属性,强调其作用类型

<div class="footerWrap"><button class="close btn" type="button" (click)="handleCloseModal()">关闭</button><button class="submit btn" type="button" (click)="handleSubmit()">确定</button></div>

2、使用其他标签模拟出一个button按钮,如:div

<div class="footerWrap"><div class="close btn" (click)="handleCloseModal()">关闭</div><div class="submit btn" (click)="handleSubmit()">确定</div></div>

总结,只要表单内不出现type="submit"类型的inputbutton标签即可,同时为了预防并限制默认类型被指定为type="submit",可以在使用inputbutton的地方指定其作用类型,或者使用其他标签来模拟button

:: 衍伸阅读

form

HTMLFormElement: submit event

SubmitEvent.submitter

:: 更多内容 ::

> 开发过程中踩坑经验记录

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。