反应形式:如何一键模糊和提交

时间:2019-10-16 18:27:57

标签: javascript html angular forms

我有一个带有按钮#myform的响应式表单("foo"),按钮(click) = myform.submit()附加在按钮上,因此该表单仅在单击该按钮时提交,而不在{ {1}}个事件。组件侦听Enter事件,并在这种情况下分派Enter,并且FormControl都具有blur,因此{updateOn: 'blur'}事件触发更新(即blur,等)。

我的问题是:如果我将数据键入valueChanges(或在Input中选择一个项目)而没有从元素中击出SelectEnter,然后单击Tabbing,即"foo"按钮,似乎单击"Submit"按钮只会导致"foo"事件,而不会触发表单提交(通过blur )。也就是说,myform.submitsubmit事件“吞噬”。

如何进行设置,以便如果我不在某个元素中blurEnter,并立即单击Tab,则该元素将通过{{ 1}}事件,然后还会提交表单吗?

我尝试了以下操作:1.首先处理"foo",然后尝试以编程方式调用组件中的blur(通过blur访问myform.submit() ),以及2.在模板视图中添加Form侦听器。在这一点上,我什至没有这个@ViewChild调用来进行编译,到目前为止,我尝试过的所有方法似乎都没有用。

原始代码(简化)如下: 模板(blur)= (submitNow && setTimeout(()=>myform.submit(),50)

setTimeout

组件details.component.html


<form #myform [formGroup]="form" method="POST" action="http://localhost:3000/users/{{userID}}/details">
        <ng-container *ngFor="let sec of datArr">
                <ng-container *ngFor="let row of sec; let i = index">
                          <input type="text"
                          [appTag]="row[datColEnum.tabCol]"
                          (keydown.enter)="onEnter($event)"
                          tabindex = "{{row[datColEnum.tabCol]}}"
                          name="{{row[datColEnum.controlNameCol]}}" value="{{row[datColEnum.valueCol]}}" 
                          formControlName="{{row[datColEnum.controlNameCol]}}"/>
                </ng-container>
         </ng-container>
  <button name="foo" type="button" (click)="myform.submit()">Submit</button>
</form>


0 个答案:

没有答案
相关问题