我在对话框中有一个隐藏的表单,我想自动提交。 网页代码 :
<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((;