Angular 2/4:nativeElement.submit() 不在 Firefox 中提交表单,但在 chrome 中有效
Posted
技术标签:
【中文标题】Angular 2/4:nativeElement.submit() 不在 Firefox 中提交表单,但在 chrome 中有效【英文标题】:Angular 2/4 : nativeElement.submit() does not submit form in Firefox, but works in chrome 【发布时间】:2018-10-09 06:09:50 【问题描述】:我通过旧式 POST 方法(非 ajax)从我的页面向外部站点提交表单。我参考的表格是在 chrome 中提交的,而不是在 Firefox 中提交的。 nativeElement 是否存在浏览器兼容性问题?
html 格式:
<form [formGroup]="form" #gatewayFormElement *ngIf='form' action="abcpage" (submit)="onSubmit($event)" method="POST" ngNoForm >
.........
<button [formGroup]="form" type="submit">
'Connect to Suntech' | translate
</button>
</form>
我的组件
export class EsafeComponent extends GatewayBaseClass implements OnInit
@ViewChild('gatewayFormElement') private gatewayFormElement:ElementRef;
...............
onSubmit(event: Event)
this.gatewayFormElement.nativeElement.submit();
在 chrome 中发布到其他页面,但不是在 Firefox 中。我尝试了 2、3 个不同版本的 firefox。
感谢任何帮助,谢谢!
【问题讨论】:
【参考方案1】:如果您想使用按钮提交表单,则不需要 ViewChild
<form #gatewayFormElement [formGroup]="form" *ngIf='form'
action="http://wwww.abcpage" method="POST">
...
<!-- not put [formGroup]="form" in the button -->
<button type="submit">
'Connect to Suntech' | translate
</button>
<!--you can use a button type button too-->
<button type="button" (click)="gatewayFormElement.submit()>
'Connect to Suntech' | translate
</button>
【讨论】:
我的问题中的按钮类型为“提交”。请再次检查。谢谢以上是关于Angular 2/4:nativeElement.submit() 不在 Firefox 中提交表单,但在 chrome 中有效的主要内容,如果未能解决你的问题,请参考以下文章
Angular nativeElement.scrollTop 有奇怪的行为
Angular2 测试:ComponentFixture 中的 DebugElement 和 NativeElement 对象有啥区别?
Angular 混合应用程序测试“无法读取 null 的属性‘nativeElement’”