_this.testFormEl.nativeElement.submit 不是 Form Post 的函数



我在对话框中有一个隐藏的表单,我想自动提交。 网页代码 :

<form #formVal method="POST" [action]="urlvalue">
<p *ngFor="let item of redirectData.RedirectData.Form.Parameter;
let pindex = index;">
<input type="hidden" [name]="item.name" [value]="item.value">
</p>
</ form>

'

在我之前的角度 1.5 代码中,我正在做

$timeout(() => {
angular.element('#3DSForm').submit();
}, 100); 

它正在工作,但在 Angular 6 中,我尝试在 ngAfteronInit 中使用 ViewChild,但仍然没有运气,我遇到了原生元素的错误,我什至在我的 HTML 中使用了 ngNoform,但没有成功。

@ViewChild('formVal') form: ElementRef;
setTimeout(() => {
this.form.nativeElement.submit();
}, 200);

请建议我错过了什么

你可能有一些叫做submit的元素。

例:

<input type="hidden" name="submit">

将其重命名为其他名称,例如btnSubmit.

你应该像这样调用提交按钮的点击事件,

<form #formVal method="POST" [action]="urlvalue">
<div *ngFor="let item of redirectData.RedirectData.Form.Parameter; let pindex = index;">
<input type="hidden" [name]="item.name" [value]="item.value">
</div>
<input type="hidden" name="submit" #submitBtn>
</ form>

在 TS 文件中

@ViewChild('submitBtn') submitBtn: ElementRef;

submitForm() {
this.submitBtn.nativeElement.click();
}

之后,从要提交函数的位置调用submitForm()函数。

我能够使用HTMLFormElement实现它。

<form ngNoForm name="myForm" id="myForm" [action]="urlvalue" method="POST">
<button type="submit" class="test" style="visibility: hidden;"></button>
</form>

此代码在组件中。 const form: HTMLFormElement = document.getElementById('myForm'(; form.submit((;

最新更新