我正试图通过标签外的按钮提交我的被动表格.以前,这个表单是模板驱动的,我可以这样做:
<button (click)="f.ngSubmit.emit()"></button>
如果’f’是表格名称.
TypeError: Cannot read property 'emit' of undefined
我可以模拟这种行为在表单内部编写隐藏按钮并为外部按钮设置click事件:
<form [formGroup]="loginForm" (ngSubmit)="login()"> ... <button #submit type="submit" style="visibility:hidden"></button> </form> <button (click)="submit.click"></button>
谢谢.
编辑:
<form id="loginF" [formGroup]="loginForm" (ngSubmit)="login()"> ... </form> <button form="loginF" (click)="submit.click"></button>
解决方法
要从表单外部调用提交按钮,您应该使用按钮上的“表单属性”来引用所需表单:
<form [formGroup]="loginForm" (ngSubmit)="login()" id="thatForm"> ... </form> <button type="submit" form="thatForm"></button>
正如你所看到的,它是普通的旧HTML,而不是一个奇怪的黑客,并且它支持所有优秀的浏览器(也就是除了IE之外的所有人(http://caniuse.com/#feat=form-attribute))