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

时间:2018-08-21 10:08:56

标签: post angular6

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

请提示我在想什么

3 个答案:

答案 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();