我在对话框中有一个隐藏的表单,我想自动提交。 HTML代码:
<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);
请提示我在想什么
答案 0 :(得分:1)
您可能有一个名为submit
的元素。
示例:
<input type="hidden" name="submit">
将其重命名为其他名称,例如btnSubmit
。
答案 1 :(得分:0)
您应该像这样为提交按钮调用点击事件,
<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()
函数。
答案 2 :(得分:0)
我能够使用HTMLFormElement实现它。
<form ngNoForm name="myForm" id="myForm" [action]="urlvalue" method="POST">
<button type="submit" class="test" style="visibility: hidden;"></button>
</form>
此代码在组件中。 const形式:HTMLFormElement = document.getElementById('myForm'); form.submit();